生命在于学习——Python人工智能原理(4.5)

在这里插入图片描述

三、Python的数据类型

3.2 Python的组合数据类型

3.2.4 字典-映射类型

映射类型是键-值数据项的组合,每一个元素都是一个键-值对,即元素是(key,value),元素之间是无序的,键-值对(key,value)是一种二元关系,源于属性和值的映射关系。
字典是Python中的一种映射类型,用于存储键值对,每个键必须是唯一的,而值可以是任意数据类型,包括整数、浮点数、字符串、列表、甚至是另一个字典。字典是无序的,即字典中的键值对没有固定的顺序。
字典的特点

无序性:字典是无序的,即其元素的排列顺序并不按照添加的顺序进行。
键值对存储:字典的元素是以键值对的形式存储的,其中键(key)是唯一的,并且是不可变的数据类型(如字符串、数字、元组等),而值(value)可以是任意类型的数据。
可变性:字典是可变的,即可以在字典中添加、修改或删除键值对。
高效查找:由于字典使用哈希表实现,因此查找、添加、删除等操作都具有平均情况下接近O(1)的时间复杂度。
无索引:与列表和元组不同,字典不支持通过索引访问元素,而是通过键来访问对应的值。

字典的操作

1. 创建字典
使用花括号 {} 创建:例如 {'name': 'Alice', 'age': 25}
使用 dict() 函数创建:例如 dict(name='Alice', age=25)
从列表的元组对创建:例如 dict([('name', 'Alice'), ('age', 25)])
2. 访问字典中的值
使用方括号 [] 和键来访问值,例如 my_dict['name']
如果访问不存在的键,会触发 KeyError 异常。可以使用 get() 方法来避免异常,并返回指定的默认值。
3. 修改字典
直接对键进行赋值即可修改该键对应的值,例如 my_dict['age'] = 30
4. 添加键值对
如果键不存在于字典中,直接赋值即可添加新的键值对,例如 my_dict['city'] = 'New York'
5. 删除键值对
使用 pop() 方法删除指定键的键值对,并返回该键对应的值,例如 my_dict.pop('name')
使用 del 语句删除指定键的键值对,例如 del my_dict['age']
使用 clear() 方法清空字典中的所有键值对,例如 my_dict.clear()
6. 遍历字典
使用 for 循环遍历字典的键,例如 for key in my_dict:
使用 for 循环遍历字典的键值对,例如 for key, value in my_dict.items():
7. 字典的常用方法
len():返回字典中键值对的数量。
str():将字典转换为字符串格式。
type():返回字典的数据类型。
keys():返回字典中所有的键。
values():返回字典中所有的值。
items():返回字典中所有的键值对。
get():返回指定键的值,如果键不存在则返回默认值。
setdefault():如果键在字典中不存在,则设置该键的值;如果键已存在,则不会改变其值。
update():使用另一个字典的键值对更新当前字典。
这些特点和操作使得字典在Python中成为处理关联数据的强大工具。

3.3 运算符

运算符是告诉程序指定运算操作的符号,是对操作数进行运算,通过运算符可以将两个不同的数据组合起来得到一个运算结果。
Python中的运算符按照不同的功能,分为算术运算符、比较运算符和逻辑运算符。
Python 提供了多种运算符,用于执行各种算术运算、比较、逻辑判断、位运算等。以下是对这些运算符的介绍和示例:

1. 算术运算符
-(取反):result = -5
+(加法):result = 2 + 3
-(减法):result = 5 - 3
*(乘法):result = 2 * 3
/(除法):result = 6 / 2
//(整除):result = 7 // 3 # 结果为 2
%(取模):result = 7 % 3 # 结果为 1
**(幂运算):result = 2 ** 3 # 结果为 8
2. 比较运算符
==(等于):result = (2 == 3) # 结果为 False
!=(不等于):result = (2 != 3) # 结果为 True
>(大于):result = (5 > 3) # 结果为 True
<(小于):result = (2 < 3) # 结果为 True
>=(大于或等于):result = (5 >= 5) # 结果为 True
<=(小于或等于):result = (2 <= 3) # 结果为 True
3. 逻辑运算符
and(逻辑与):result = (True and False) # 结果为 False
or(逻辑或):result = (True or False) # 结果为 True
not(逻辑非):result = not False # 结果为 True
4. 位运算符
&(按位与):result = 5 & 3 # 5(二进制101)和3(二进制011)的按位与结果是1(二进制001)
|(按位或):result = 5 | 3 # 结果是7(二进制111)
^(按位异或):result = 5 ^ 3 # 结果是6(二进制110)
~(按位取反):result = ~5 # 结果取决于整数的大小和系统的位数(对于32位系统,-6)
<<(左移):result = 2 << 1 # 结果是4(二进制100)
>>(右移):result = 4 >> 1 # 结果是2(二进制010)
5. 成员运算符
in:检查某个元素是否存在于某个序列中(如列表、元组或字符串):result = 'a' in 'hello' # 结果为 True
not in:检查某个元素是否不存在于某个序列中:result = 'z' not in 'hello' # 结果为 True
6. 运算符的优先级
Python 中的运算符优先级遵循数学中的常规优先级规则,如括号内的运算优先级最高,幂运算高于乘除和取模,乘除和取模高于加减,然后是比较运算符,接着是逻辑运算符等。可以使用括号来改变默认的优先级。

示例:

python
result = 2 + 3 * 4  # 结果是 14,因为乘法优先于加法  
result = (2 + 3) * 4  # 结果是 20,因为括号改变了优先级
在编写复杂的数学表达式或逻辑表达式时,使用括号可以确保表达式的计算顺序符合你的预期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/742672.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

程序员日志之DNF手游20240620罗特斯普通团本和剑魂阿修罗

目录 传送门正文日志1、概要2、升级参考3、搬砖攻略4、散装史诗攻略5、关于团本 传送门 SpringMVC的源码解析&#xff08;精品&#xff09; Spring6的源码解析&#xff08;精品&#xff09; SpringBoot3框架&#xff08;精品&#xff09; MyBatis框架&#xff08;精品&#xf…

[深度学习]循环神经网络RNN

RNN&#xff08;Recurrent Neural Network&#xff0c;即循环神经网络&#xff09;是一类用于处理序列数据的神经网络&#xff0c;广泛应用于自然语言处理&#xff08;NLP&#xff09;、时间序列预测、语音识别等领域。与传统的前馈神经网络不同&#xff0c;RNN具有循环结构&am…

用构造函数为对象的数据成员实现输入和输出时间

在C程序中&#xff0c;对象的初始化是一个不可缺少的重要问题。不应该让程序员在这个问题上花过多的精力&#xff0c;C在类的设计中提供了较好的处理方法。 为了解决这个问题&#xff0c;C提供了构造函数&#xff08;constructor&#xff09;来处理对象的初始化。构造函…

51单片机-温度传感器DS18B20

51单片机-温度传感器DS18B20 本文主要基于51单片机的温度传感器DS18B20开发示例的编程应用来理解开发中如何看时序图&#xff0c;用代码模拟时序图实现器件功能。 1.DS18B20简介 DS18B20的核心功能是它可以直接读出数字的温度数值。温度传感器的精度为用户可编程的9&#xf…

重磅丨上海容大推出“容聆”智能拾音工牌,赋能线下门店运营数字化

近日&#xff0c;继豚音营业厅智能质检终端之后&#xff0c;上海容大数字技术有限公司&#xff08;简称“上海容大”&#xff09;在线下面对面沟通场景下语音数据采集与智能分析领域取得了新突破&#xff0c;重磅推出AI智能语音工牌产品——“容聆”。 据悉&#xff0c;“容聆”…

python通讯录管理系统

项目演示 有偿项目&#xff0c;需要可以加我微信

智能制造装备业项目数字化管理之多项目管理

在智能制造装备业中&#xff0c;多项目管理已经成为行业发展的核心驱动力。这种管理方式从全局的视角出发&#xff0c;对企业内同时推进的多个项目进行精细化的全生命周期管控。这不仅仅涉及单一项目的管理&#xff0c;还包括项目集和项目组合管理。 根据客户需求&#xff0c;一…

智能视频监控平台智能边缘分析一体机安防监控平台吸烟检测算法应用场景

智能边缘分析一体机吸烟检测算法是一种集成了先进图像处理、模式识别和深度学习技术的算法&#xff0c;专门用于实时监测和识别公共场所中的吸烟行为。以下是关于该算法的详细介绍&#xff1a; 工作原理 1、视频采集&#xff1a; 通过安装在公共场所的摄像头&#xff0c;实时…

电巢科技CIOE中国光博会:激光雷达技术应用研讨会圆满落幕!

2024年6月20日&#xff0c;由CIOE中国光博会与电巢科技联合主办的“激光雷达技术应用”线上研讨会成功举行。本次线上研讨会是CIOE中国光博会与电巢科技首次联合主办的论坛&#xff0c;旨在借助双方自身资源优势&#xff0c;为行业发展提供可靠的交流平台。接下来&#xff0c;C…

秋招突击——6/20——复习{(单调队列优化)——最大子序列和,背包问题——宠物小精灵收服问题}——新作{两两交换链表中的节点}

文章目录 引言复习单调队列优化——最大子序列和思路分析实现代码参考实现 背包问题——宠物小精灵的收服问题个人实现参考实现 新作两两交换链表中的节点个人实现参考实现 删除有序数组中的重复项个人实现知识补全迭代器的访问和控制vector删除特定的元素erasevector底层删除元…

canvas入门详细教程(W3C)

文章目录 一、线形1、画线形之前&#xff0c;最基本的方法需要知道&#xff1a;2、线形的样式设置&#xff1a;3、不同的线形路径给不同的样式设置-需要知道俩个方法&#xff1a;4、画线形三角5、画贝塞尔曲线6、画虚线 二、画矩形1、绘制空心矩形有三种方法2、绘制填充矩形有俩…

【sklearn基础入门教程】

&#x1f308;个人主页: 程序员不想敲代码啊 &#x1f3c6;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f44d;点赞⭐评论⭐收藏 &#x1f91d;希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出指正&#xff0c;让我们共…

c++ 设计模式 的课本范例

( 0 ) 这里补充面向对象设计的几个原则&#xff1a; 开闭原则OCP &#xff1a; 面向增补开放&#xff0c;面向代码修改关闭。其实反映到代码设计上就是类的继承&#xff0c;通过继承与多态&#xff0c;可以不修改原代码&#xff0c;又增加新的类似的功能。 依赖倒置原则 Depend…

在Mandelbrot 集中“缩放”特定区域

1、问题背景 在创建一个快速生成 Mandelbrot 集图像的 Python 程序时&#xff0c;程序开发者遇到一个问题&#xff1a;他想要渲染该集合的一个特定区域&#xff0c;但他不知道如何修改代码中的数学部分来实现 “缩放”。 2、解决方案 第一种解决方案 问题根源是代码中的一行…

qt开发-14_QListwidget 仿qq好友列表制作

QListWidget 继承 QListView。QListWidget 类提供了一个基于项的列表小部件。QListWidg et 是一个便捷的类&#xff0c;它提供了一个类似于 QListView&#xff08;下一小节将讲到&#xff09;提供的列表视图&#xff0c;但 是提供了一个用于添加和删除项目的基于项目的经典接口…

智慧互联:Vatee万腾平台展现科技魅力

随着科技的迅猛发展&#xff0c;我们的生活正逐渐变得智能化、互联化。在这个信息爆炸的时代&#xff0c;一个名为Vatee万腾的平台正以其独特的魅力&#xff0c;引领我们走向一个更加智能的未来。 Vatee万腾&#xff0c;这个名字本身就充满了对科技未来的憧憬与期待。作为一家专…

Jacob------VBA的局限性(复杂批注的获取方式)

问题再现&#xff1a; 同一个字段被多个批注 使用VBA代码是获取不到他们的关系的 &#xff0c;原因如下&#xff1a; 同一个字段被多个批注&#xff0c;并且每个批注都有回复是无法通过VBA语言获取的 &#xff0c;解释如下&#xff1a; ① 微软Microsoft 官方文档 提供的API …

微信营销自动化(朋友圈自动点赞工具):UIAutomation的解决方案

文章不用看, 是AI生成的, 请直接查看下载地址 http://www.aisisoft.top . 微信朋友圈自动点赞工具, 自动群发工具 在当今的数字化营销领域&#xff0c;自动化工具成为了提升工作效率、增强客户互动的关键。本文将详细介绍一款基于UIAutomation框架与Python语言构建的微信营销自…

【MySQL】如果表被锁可以尝试看一下事务

今天在MySQL中删除表的时候&#xff0c;发现无法删除&#xff0c;一执行drop&#xff0c;navicat就卡死。 通过 SHOW PROCESSLIST显示被锁了 kill掉被锁的进程后依旧被锁 最后发现是由于存在为执行完的事务 SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX; kill掉这些事务以…

Excel 查找后隐去右边列

Excel 有几列数字 ABC11002042002202100102326027010841199100512100100 当给定参数时&#xff0c;请从每行找到该参数&#xff0c;隐去右边的列。如果某行不含该参数&#xff0c;则隐去整行。当参数是 100 时&#xff0c;结果如下&#xff1a; ABC710082021009119910010121…