Python 06-字典

字典是一種key-value的數據類型,就像平常用的字典,經過字母或者筆畫來查找對應頁的詳細內容。安全

字典是無序的,沒有順序。由於有key。spa

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())#把字典轉成列表

 

多級字典嵌套及操做code

字典能夠多級嵌套,成爲樹狀結構。blog

 

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)
相關文章
相關標籤/搜索