无序,可修改,用于存储数据,大量,比列表快,将数据和数据之间关联python
定义:dict1 = {'cx':10,'liwenhu':80,'zhangyu':50}code
逗号分割的是一个元素,'cx'(键):10(值) -- 键值对blog
字典的键:要使用不可变数据类型(可哈希)。要求键惟一,若是有重复的,后面的会将前面的覆盖。索引
可哈希的 -- 不可变的数据类型 - 避免哈希冲突使用了开放寻址法get
不可哈希的 -- 可变的数据类型it
字典的值能够任意。io
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50} #1 dict1['li'] = 89 print(dict1) #2 print(dict1.setdefault('liw')) dict1.setdefault('liw',100) print(dict1.setdefault('liw',100)) print(dict1)
del dict1['cx'] :经过查找字典的键删除键值对,若是没有会报错。for循环
dict1.pop('cx'):经过字典的键删除键值对,返回被删除值class
dict1.clear():清空变量
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50,'wu':20} #1 del dict1['cx'] print(dict1) #2 dict1.pop('wu') print(dict1.pop('wu')) print(dict1) #3 dict1.clear() print(dict1)
dict1['cx'] = 'dsb' 经过键,若是原字典中没有此键对应的键值对,就是添加,若是有,就是修改
dict1.update(dict2) :update括号中的字典级别高于前边的字典(括号中放的是要跟新的字典)
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50} #2 dict2.update(dict1) print(dict2)
for 循环,获取的是键。
dict1.get('cx') :经过键获取值,若是没有会返回None
dict1['cx'] :经过键获取值,若是没有会报错。
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50} #1 for i in dict1: print(i) #2 print(dict1.get('cx')) #3 print(dict1['cx'])
dic = {1001:["周杰伦","林俊杰"], 1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}}, 1003:{"陈冠希":["阿娇","阿萨","张柏芝"]}, 1004:{"韦小宝":[{"教主夫人":["教主"]}, {"阿珂":"刺客"}, {"双儿":"天地会"}, {"爱心觉罗建宁":"公主"}, {"独臂神尼":{"韦小宝师父":{"兰陵王":"隐身"},"花木兰":[ "唧唧复唧唧","木兰是战士",{"爸爸":["花和尚"]}] }}, {"陈圆圆":"丈母娘"},{"穆建平":"小郡主"}]}, 1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]} } # print(dic) # print(dic[1004]["韦小宝"][0]["教主夫人"][0]) # print(dic[1005]["常鑫"][-1]) # print(dic[1002]["汪峰"]["前妻2"][-1]) # print(dic[1004]["韦小宝"][4]["独臂神尼"]["韦小宝师父"]["兰陵王"]) # print(dic[1004]["韦小宝"][4]["独臂神尼"]["花木兰"][2]["爸爸"][0])
解构示意图:
a = 10
b = 12
a,b = b,a
dict1 = {'cx':10,'liwenhu':80,'zhangyu':50} #1.键值对输出 for i in dict1: print(i,dict1.get(i)) print(dict1.keys())#2.高仿列表 ,支持for循环,不支持索引-- 结果:ict_keys([True, 'zhangyu', 'cx', 'liwenhu']) for i in dict1.keys(): print(i) #print(dict1.keys()[0]) #3.dict1.values(),获取全部的值(能够转列表) print(dict1.values()) print(list(dict1.values())) #4.dict1.items():获取键值对 for i in dict1.items(): print(i) ##解构 for i,j in dict1.items():#解构输出键值对 print(i,j) #5.解构。 a,b = 10 ,12 print(a) print(b) a = 10 b = 12 a,b = b,a print(a) print(b) a,b = [1,2] print(a,b) a,_,b = (3.4.5)#'_'无用,只为将不要的4赋值进去 print(a,b)#等号后边的值与前边的变量数要一致 a = 10,12 print(a)#a是一个元组 a,b ={'1':'a','2':b} print(a,b)#取到的是键