python基础之字典函数(12)

本文详细介绍了Python字典的定义、操作、遍历方式以及字典的常用函数,包括如何访问、添加、修改和删除字典元素,字典的遍历方式,如键、值和键值对的遍历。此外,还涵盖了字典推导式和字符串格式化字典的方法,以及字典的专用函数,如clear()、copy()、fromkeys()、pop()、popitem()、setdefault()和update()等。

字典:
由键值组成的数据的组合。
字典的键必须是不可以改变的类型。 常用的就是字符串,整型,浮点型,用于区分字典中值的标识
注意:
字典并没有有序无序一说,因为字典是根据哈希做的,在内存中的存储是没有先后顺序的,只是通过键值对这样的方式来处理数据。在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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值