字典是一種key-value的數據類型,就像日常用的字典,通過字母或者筆畫來查找對應頁的詳細內容。
字典是無序的,沒有順序。因為有key。
info = {'stu1001':'wang er','stu1002':'zhang san','stu1003':'li si' } print(info)#打印字典所有kv print(info['stu1001'])#打印key對應的value info['stu1001'] = '王二' info['stu1004'] = 'zhao liu'#有key就修改,沒有key就添加 del info['stu1001']#刪除某一kv info.pop('stu1002')#刪除某一kv info.popitem()#隨機刪除一個kv print(info)info1 = {'stu1001':'wang er','stu1002':'zhang san','stu1003':'li si' } info1['stu1001']#查找某一個kv。確定有這個k才能用這種方法,否則會報錯 print(info1.get('stu1004'))#安全的查找。如果沒有這個值,會返回None print('stu1004' in info1)#查找字典里有沒有這個元素,如果有返回True,沒有返回false info.values()b = {'stu1001':'robin',1:3,2:5 } info1.update(b)#將兩個字典合并,相同的key做更新 print(info1) c = info1.fromkeys([6,7,8],[1,{'name':'robin'},444])#初始化一個新的字典,如果只有一層沒事。如果多層,會出現共享內存地址問題。一個改了,其他都改了。 print(c) c[7][1]['name'] = 'jack' print(c)print(info1.items())#把字典轉成列表
?
多級字典嵌套及操作
字典可以多級嵌套,成為樹狀結構。
?
catalog = {'Europr':{'Germany':['beer','football','rigorous'],'Frence':['romantic','Napoleon','Paris'],'England':['Big Ben','London','Manchester'],'Italy':['Rome','Milan','Venice']},'Asia':{'China':['Beijing','Shanghai','Tianjing'],'Japan':['Tokyo','Osaka','Nagoya'],'Korea':['Seoul','Jeju']},'North America':{'USA':['Washington','New York','Los Angel'],'Canada':['Toronto','Montreal']} } catalog['Asia']['China'][1]='Chongqing'print(catalog.values())#打印所有的value print(catalog.keys())#打印所有的key catalog.setdefault('Africa',{'South Africa':[1,2,3],'Libya':[5,6,7],'Zimbabwe':[8,9,0]})#如果有這個值,返回;沒有這個值,創建新的# print(catalog)
字典的循環
info2 = {'stu1001':'wang er','stu1002':'zhang san','stu1003':'li si' } print(info2) for i in info2:print(i,info2[i]) #最常用的循環方式,比下面的高效for k,v in info2.items(): #先把字典轉成列表,費時間print(k,v)
?