字典:
由键值组成的数据的组合。
字典的键必须是不可以改变的类型。 常用的就是字符串,整型,浮点型,用于区分字典中值的标识
注意:
字典并没有有序无序一说,因为字典是根据哈希做的,在内存中的存储是没有先后顺序的,只是通过键值对这样的方式来处理数据。在python3.6之前的版本全部都是无序的,在python3.6以后,python的字典数据的修改与输出的顺序则有序,在内存中的存储依然无序。
如果硬要说字典是否有序,则答3.6之前无序,3.6之后有序(使用方面).
字典的定义:
1.方法1:常见
变量 = {键:值,键:值,键:值,键:值…}
2.方法2:
变量 = dict(形参 = 值,形参=值…)
3.方法3:数据类型转换
变量 = dict(符合条件的嵌套容器) #容器必须是列表或者元组
4.方法4:
变量 = dict(zip(键的容器,值的容器))#容器必须是列表或者元组
字典的操作:
访问字典中的值:
字典[键]
给字典添加值
字典[新键] = 新值
修改字典中的值
字典[已存在的键] = 新值
删除字典中的值
del 字典[键]
序列操作:
因为字典数据类型没有索引,所以无法使用分片,索引操作
字典类型没有乘法与加法运算
成员检测:
in
not in
字典的常用函数:
max() 获取字典中键的最大值
min() 获取字典中键的最小值
len() 获取字典的长度
dict() 创建字典类型或者将其他数据类型转换为字典
字典的遍历:
1.基本格式
for 变量 in 字典:
循环内容
注意:该循环中变量获取的是字典的键而非值,如果要获取值 使用字典[键变量]
2.仅仅遍历键
for 变量 in 字典.keys():
循环内容
3.仅仅遍历值
for 变量 in 字典.values():
循环内容
4.同时遍历键和值
for 变量1,变量2 in 字典.items():
循环内容
字典推导式:
#基本推导式
变量 ={变量1:变量2 for 变量1,变量2 in 字典.items()}
#带有判断条件的推导式
变量 ={变量1:变量2 for 变量1,变量2 in 字典.items() 条件表达式}
#多循环的字典推导式
变量 = {变量1 + 变量a : 变量2 + 变量b for 变量1,变量2 in 字典1.items() for 变量a,变量b in 字典2.items()}
#多循环的字典推导式
变量 = {变量1 + 变量a : 变量2 + 变量b for 变量1,变量2 in 字典1.items() for 变量a,变量b in 字典2.items() 条件表达式}
字符串格式化字典:
字符串字符串%(字典的键)s字符串字符串字符串 % 字典
dict1= {'gd':'56'}
print('%(gd)s'% dict1)
字典专用的函数(方法):
clear() 清空字典
字典.clear()
copy() 复制字典 #深拷贝
字典.copy()
fromkeys() 使用指定的键容器制作一个字典 #
字典.fromkeys(键的容器,值)
keys() 获取字典中的键组成新的容器
字典.keys()
values() 获取字典中的值组成新的容器
字典.values()
items() 获取字典的中的键和值组成嵌套容器
字典.items()
pop() 根据键删除指定的值
字典.pop(键)
字典.pop(键,默认值)
popitem() 删除字典的显示的最后一个数据 #
字典.popitem()
setdefault() 向字典中添加数据
字典.setdefult(键,值) 如果键不存在则添加,已存在不进行任何操作
update() 修改字典中的值,加入键不存在则会添加内容
字典.update(键 = 值,键 = 值…)
字典.update({键:值,键:值,键:值…})
get() 获取字典中的值
字典.get(键) 获取指定键对应的值,找不到返回None
字典.get(键,默认值)获取指定键对应的值,找不到返回默认值