失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 字典的增删查改

字典的增删查改

时间:2021-12-30 09:44:38

相关推荐

字典的增删查改

字典

字典是无序的,不可变数据类型

定义: 用于存储数据,存储大量数据 字典要比列表快,将数据和数据之间进行关联

定义一个字典

dic = {"常鑫":10,"李文虎":80,"张宇":90,10:"大黑哥"}

字典中逗号分隔是一个元素 "常鑫" (键) : 10 (值) 键值对应

字典的键

必须是可哈希的—— 不可变的数据类型(列表不可以)——避免哈希冲突,使用了开放寻址法

2.不可哈希———可变的数据类型

3.要求唯一,如果有重复的后面的将前面的值覆盖

字典的值可以任意

(通过键去查)

1.暴力添加

dic = {"有":[1,2,3]}dic["李文虎"] = 89 结果:{'有': [1, 2, 3], '李文虎': 89}

李文虎这个键去字典进行查询,如果不存在执行添加,如果存在就不添加了

有:dic = {"有":[1,2,3],"李文虎":89}dic.setdefault("李文虎",100)结果: dic = {"有":[1,2,3],"李文虎":89}没有:dic = {"有":[1,2,3],}dic.setdefault("李文虎",100)结果:{'有': [1, 2, 3], '李文虎': 100}

dic.setdefault()

dic = {"有":[1,2,3],"李文虎":89}print(dic.setdefault("李文虎"))#结果 89 只有两种格式 还有 Noneprint(dic.setdefault("张宇")# None

删除

通过字典 的删除值对

del dic["键"]

dic = {"有":[1,2,3],"李文虎":89}del dic["有"]print(dic)#结果{'李文虎': 89}

dic.pop("键")

dic = {"有":[1,2,3],"李文虎":89}dic.pop("有")print(dic)# 结果 {'李文虎': 89}

dic.clear

dic = {"有":[1,2,3],"李文虎":89}dic.clear()print(dic)# {}

当键在字典中存在就是修改(暴力修改)

dic = {"有":[1,2,3],"李文虎":89}dic["有"] = "dsb"print(dic)# {'有': 'dsb', '李文虎': 89}

字典中没有某个键时就是添加

dic = {"有":[1,2,3],"李文虎":89}dic["无"] = "dsb"print(dic)# {'有': [1, 2, 3], '李文虎': 89, '无': 'dsb'}

dic.update("要更新的字典")

括号里的级别高于 update 前面的字典 更新顾名思义就是将补充的填充到原来上面

D = {'one': 1, 'two': 2}D.update({'three': 3, 'four': 4}) # 传一个字典print(D)D.update([('seven', 7), ('eight', 8)]) # 传一个包含一个或多个元祖的列表print(D)#{'one': 1, 'two': 2, 'three': 3, 'four': 4}{'one': 1, 'two': 2, 'three': 3, 'four': 4, 'seven': 7, 'eight': 8}

利用 for 循环(循环获取的每个字典中对应的键)

dic = {"有":[1,2,3],"李文虎":89}for i in dic:print(i)#有李文虎

dic.get()

dic = {"有":[1,2,3],"李文虎":89}print(dic.get("李文虎"))#通过键获取值,存在返回键中对应的值# 89

dic = {"有":[1,2,3],"李文虎":89}print(dic.get("无")) #不存在返回 None# None

dic.get[]

存在的话和上面的()一样,如果不存在就会报错

其他操作

dic.keys()获取所有键,存放在高仿列表中,支持 for 循环,不支持索引.

dic = {"有":[1,2,3],"李文虎":89}print(dic.keys())# 结果: dict_keys(['有', '李文虎'])

支持 for 循环

dic = {"有":[1,2,3],"李文虎":89}for i in dic.keys():print(i)结果:有李文虎 类似于输出列表中的元素, 字典也可以

不支持索引直接报错

dic = {"有":[1,2,3],"李文虎":89}print(dic.keys()[0])结果报错

dic.values()获取字典中所有的值

dic = {"有":[1,2,3],"李文虎":89}print(dic.values())#dict_values([[1, 2, 3], 89])

dic.items()获取字典中所有键和值

dic = {"有":[1,2,3],"李文虎":89}print(dic.items())#dict_items([('有', [1, 2, 3]), ('李文虎', 89)])

解构

a,b = 10,12print(a)print(b) #相当于一个元组 #1012

a = 10b = 20a,b = b,aprint(a)print(b)#

列表a, b = [1,2]print(a)print(b)#12

元组a, b = (1,2)print(a)print(b)#等号前面的值要和等号后面的变量名要一一对应,不能多也不能少#12

字典a,b = {"1":"a","2":"b"}print(a)print(b)#12

dic = {"1":"a","2":"b"}for k,v in dic.items():print(k,v)#1 a2 b 循环获取字典中的每一个键和值

字典的嵌套

通过键一步一步查询

dic = {1001:["周杰伦","林俊杰"],1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}},1003:{"陈冠希":["阿娇","阿萨","张柏芝"]},1004:{"韦小宝":[{"教主夫人":["教主"]},{"阿珂":"刺客"},{"双儿":"天地会"},{"爱心觉罗建宁":"公主"},{"独臂神尼":{"韦小宝师父":{"兰陵王":"隐身"},"花木兰":["唧唧复唧唧","木兰是战士",{"爸爸":["花和尚"]}]}},{"陈圆圆":"丈母娘"},{"穆建平":"小郡主"}]},1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]}}print(dic[1005]["常鑫"][-1])print(dic[1002]["汪峰"]["前妻2"][-1])print(dic[1004]["韦小宝"][4]["独臂神尼"]["韦小宝师父"]["兰陵王"])print(dic[1004]["韦小宝"][4]["独臂神尼"]["花木兰"][2]["爸爸"][0])#井盖熊二隐身花和尚

如果觉得《字典的增删查改》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。