字典:
由键值组成的数据的组合。
字典的键必须是不可以改变的类型。 常用的就是字符串,整型,浮点型,用于区分字典中值的标识
注意:
字典并没有有序无序一说,因为字典是根据哈希做的,在内存中的存储是没有先后顺序的,只是通过键值对这样的方式来处理数据。在python3.6之前的版本全部都是无序的,在python3.6以后,python的字典数据的修改与输出的顺序则有序,在内存中的存储依然无序。
如果硬要说字典是否有序,则答3.6之前无序,3.6之后有序(使用方面).
字典的定义:
1.方法1:常见
变量 = {键:值,键:值,键:值,键:值…}
2.方法2:
变量 = dict(形参 = 值,形参=值…)
dict1=dict(悟空=“美猴王”,猪八戒=“天蓬元帅”)
print(dict1)
3.方法3:数据类型转换
变量 = dict(符合条件的嵌套容器) #容器必须是列表或者元组
dict1=dict(((“悟空”,“美猴王”),(“猪八戒”,“天蓬元帅”)))
print(dict1)
4.方法4:
变量 = dict(zip(键的容器,值的容器))#容器必须是列表或者元组
dict1 = dict(zip([“猪大肠”,“猪下水”,“猪肺”],(“九转大肠”,“卤煮火烧”,“夫妻肺片”)))
print(dict1)
字典的操作:
访问字典中的值:
字典[键]
dict1={“猪大肠”:“九转大肠”,“猪下水”:‘卤煮火烧’,“猪肺”:‘夫妻肺片’}
print(dict1[“猪大肠”])
给字典添加值
字典[新键] = 新值
dict1={“猪大肠”:“九转大肠”,“猪下水”:‘卤煮火烧’,“猪肺”:‘夫妻肺片’}
dict1[“馒头”]=“狗不理”
print(dict1)
修改字典中的值
字典[已存在的键] = 新值
dict1={“猪大肠”:“九转大肠”,“猪下水”:‘卤煮火烧’,“猪肺”:‘夫妻肺片’}
dict1[“猪大肠”]=“大肥肠”
print(dict1)
删除字典中的值
del 字典[键]
dict1={“猪大肠”:“九转大肠”,“猪下水”:‘卤煮火烧’,“猪肺”:‘夫妻肺片’}
del dict1[“猪大肠”]
print(dict1)
序列操作:
因为字典数据类型没有索引,所以无法使用分片, 索引操作 字典类型没有乘法与加法运算
成员检测:
in
not in
字典的常用函数:
max() 获取字典中键的最大值
min() 获取字典中键的最小值
len() 获取字典的长度
dict() 创建字典类型或者将其他数据类型转换为字典
字典的遍历:
1.基本格式
for 变量 in 字典:
循环内容
注意:该循环中变量获取的是字典的键而非值,如果要获取值 使用字典[键变量]
2.仅仅遍历键
for 变量 in 字典.keys():
循环内容
dict1={“猪大肠”:“九转大肠”,“猪下水”:‘卤煮火烧’,“猪肺”:‘夫妻肺片’}
for i in dict1.keys():
print(i)
3.仅仅遍历值
for 变量 in 字典.values():
循环内容
dict1={“猪大肠”:“九转大肠”,“猪下水”:‘卤煮火烧’,“猪肺”:‘夫妻肺片’}
for i in dict1.values():
print(i)
4.同时遍历键和值
for 变量1,变量2 in 字典.items():
循环内容
dict1={“猪大肠”:“九转大肠”,“猪下水”:‘卤煮火烧’,“猪肺”:‘夫妻肺片’}
for i,k in dict1.items():
print(i,k)
字典推导式:
#基本推导式
变量 ={变量1:变量2 for 变量1,变量2 in 字典.items()}
list1=[“小白”,“小黑”,“小红”,“小黄”]
tuple2=(“年轻”,“有精力”,“成熟”,“有阅历”)
dict={keys:values for keys in list1 for values in tuple2 }
print(dict)
#结果为
{‘小白’: ‘有阅历’, ‘小黑’: ‘有阅历’, ‘小红’: ‘有阅历’, ‘小黄’: ‘有阅历’}
dict1={“小白”:“小黑”,“小红”:“小黄”}
dict={keys:values for keys in dict1.keys() for values in dict1.values()}
print(dict)
#带有判断条件的推导式
变量 ={变量1:变量2 for 变量1,变量2 in 字典.items() 条件表达式}
list1=[“小白”,“小黑”,“小红”,“小黄”]
tuple2=(“年轻”,“有精力”,“成熟”,“有阅历”)
dict={keys:values for keys in list1 for values in tuple2 if values==“成熟”}
print(dict)
dict1 = {“胡歌”:“琅琊榜”,“陈道明”:“康熙王朝”,“苏有朋”:“还珠格格”}
dict2 = {“胡歌”:“梅宗主”,“陈道明”:“玄烨”,“苏有朋”:“五阿哥”}
res = {“大名:{}”.format(key):“绰号:%s” % value for key in dict1 for value in dict2.values()}
print(res)
#多循环的字典推导式
变量 = {变量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字符串字符串字符串 % 字典
str1 = “%(爱新觉罗-玄烨)s说过:我真的还想再活五百年” % {“爱新觉罗-玄烨”:“康熙”}
print(str1)
str1 = “{0[爱新觉罗-玄烨]}说过:我真的还想再活{1[1]}年” .format({“爱新觉罗-玄烨”:“康熙”},(“一千”,“一万”))
print(str1)
字典专用的函数(方法):
clear() 清空字典
字典.clear()
copy() 复制字典 #深拷贝
字典.copy()
copy() 复制字典 #深拷贝
dict1 = {“吴秀波”:“秀一脸”,“王大锤”:“锤死人”}
dict2 = dict1.copy()
dict1[“吴秀波”] = “陈独秀”
print(dict1)
print(dict2)
fromkeys() 使用指定的键容器制作一个字典 #
字典.fromkeys(键的容器,值)
dict1 = {}
dict2 = dict1.fromkeys([“孙悟空”,“妖怪”],[“西游记里”,“山洞里”])
print(dict2)
keys() 获取字典中的键组成新的容器
字典.keys()
values() 获取字典中的值组成新的容器
字典.values()
items() 获取字典的中的键和值组成嵌套容器
字典.items()
dict1 = {“悟空”:“妖精别跑!”,“八戒”:“妖精,别跑!”,“唐僧”:“妖精,别过来!”}
res = dict1.items()
print(res,type(res))
for k,v in res:
print(k,v)
dict2 = {“胡歌”:“梅宗主”,“陈道明”:“玄烨”,“苏有朋”:“五阿哥”}
res = {“大名:{}”.format(key):“绰号:%s” % values for key,values in dict2.items()}
print(res)
pop() 根据键删除指定的值
字典.pop(键)
字典.pop(键,默认值)
dict2 = {“胡歌”:“梅宗主”,“陈道明”:“玄烨”,“苏有朋”:“五阿哥”}
dict2.pop(“胡歌”,“长苏”)
print(dict2)
popitem() 删除字典的显示的最后一个数据 #
字典.popitem()
dict2 = {“胡歌”:“梅宗主”,“陈道明”:“玄烨”,“苏有朋”:“五阿哥”}
dict2.popitem()
print(dict2)
setdefault() 向字典中添加数据
字典.setdefult(键,值) 如果键不存在则添加,已存在不进行任何操作
dict2 = {“胡歌”:“梅宗主”,“陈道明”:“玄烨”,“苏有朋”:“五阿哥”}
dict2.setdefault(“胡ge”,“逍遥哥哥”)
print(dict2)
update() 修改字典中的值,加入键不存在则会添加内容
字典.update(键 = 值,键 = 值...)
字典.update({键:值,键:值,键:值...})
dict2 = {“胡歌”:“梅宗主”,“陈道明”:“玄烨”,“苏有朋”:“五阿哥”}
dict2.update(胡歌=“欧巴”,陈道明=“大汉天子”)
print(dict2)
dict2.update({“胡歌”:“伪装者”,“苏有朋”:“无忌哥哥”})
print(dict2)
get() 获取字典中的值
字典.get(键) 获取指定键对应的值,找不到返回None
字典.get(键,默认值)获取指定键对应的值,找不到返回默认值
dict2 = {“胡歌”:“梅宗主”,“陈道明”:“玄烨”,“苏有朋”:“五阿哥”}
res = dict2.get(“陈道明”)
print(res)
本文详细介绍了Python字典的定义、操作、遍历方式以及字典的常用函数,包括如何访问、添加、修改和删除字典元素,字典的遍历方式,如键、值和键值对的遍历。此外,还涵盖了字典推导式和字符串格式化字典的方法,以及字典的专用函数,如clear()、copy()、fromkeys()、pop()、popitem()、setdefault()和update()等。
1042

被折叠的 条评论
为什么被折叠?



