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

三、Python的数据类型

3.2 Python的组合数据类型

3.2.4 字典-映射类型

映射类型是键-值数据项的组合,每一个元素都是一个键-值对,即元素是(key,value),元素之间是无序的,键-值对(key,value)是一种二元关系,源于属性和值的映射关系。

字典是Python中的一种映射类型,用于存储键值对,每个键必须是唯一的,而值可以是任意数据类型,包括整数、浮点数、字符串、列表、甚至是另一个字典。字典是无序的,即字典中的键值对没有固定的顺序。
字典的特点

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

字典的操作

python 复制代码
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 提供了多种运算符,用于执行各种算术运算、比较、逻辑判断、位运算等。以下是对这些运算符的介绍和示例:

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,因为括号改变了优先级
在编写复杂的数学表达式或逻辑表达式时,使用括号可以确保表达式的计算顺序符合你的预期。
相关推荐
FreedomLeo11 小时前
Python机器学习笔记(十三、k均值聚类)
python·机器学习·kmeans·聚类
星光樱梦1 小时前
32. 线程、进程与协程
python
阿正的梦工坊1 小时前
深入理解 PyTorch 的 view() 函数:以多头注意力机制(Multi-Head Attention)为例 (中英双语)
人工智能·pytorch·python
西猫雷婶1 小时前
python学opencv|读取图像(十九)使用cv2.rectangle()绘制矩形
开发语言·python·opencv
liuxin334455662 小时前
学籍管理系统:实现教育管理现代化
java·开发语言·前端·数据库·安全
海绵波波1072 小时前
flask后端开发(10):问答平台项目结构搭建
后端·python·flask
码农W2 小时前
QT--静态插件、动态插件
开发语言·qt
ke_wu2 小时前
结构型设计模式
开发语言·设计模式·组合模式·简单工厂模式·工厂方法模式·抽象工厂模式·装饰器模式
赵谨言2 小时前
基于python网络爬虫的搜索引擎设计
爬虫·python·搜索引擎
code04号3 小时前
python脚本:批量提取excel数据
开发语言·python·excel