1. 程式人生 > >Python字典使用(八)

Python字典使用(八)

python dictionary

字典描述:

字典是另一種可變容器模型,且可以存儲任意類型對象。

字典的每個鍵值(key=>value)對用冒號分隔,每對之間用逗號分割,整個字典包括花括號在內,如下所示:

d={key1:value1,key2:value2}

鍵必須是唯一的,但值不必。

值可以取任何數據類型,但是鍵是必須不可變的,如字符串、元組或數字。

如:

d = {‘Alex‘:‘aaa‘,‘Wang‘:‘bbb‘}
d1={‘Alex‘:111,‘Wang‘:222}

訪問字典的值:

d = {‘Alex‘:‘aaa‘,‘Wang‘:‘bbb‘}
#d1={‘Alex‘:111,‘Wang‘:222}

print(d.keys())

#讀取字典所有鍵
print(d.values()) #讀取字典所有值
print(‘d["Alex"]: ‘,d[‘Alex‘]) #讀取某一個鍵的值,
# (習慣:引號使用,當需要使用疊加的引號時,註意不要都使用同一種引號。比如全部單引號或者全部雙引號,那樣會報錯。) 比如:print(‘d[Alex]: ‘,d[‘Alex‘])
print("d[‘Alex1‘]: ",d[‘Alex1‘]) #讀取不到鍵會報錯,信息如下KeyError: ‘Alex1‘

運行結果:

print("d[‘Alex1‘]: ",d[‘Alex1‘])

KeyError: ‘Alex1‘

dict_keys([‘Alex‘, ‘Wang‘])

dict_values([‘aaa‘, ‘bbb‘])

d[‘Alex‘]: aaa

增加&查找&刪除&修改:

d = {
‘1‘:‘aaa‘,
‘2‘:‘bbb‘,
‘3‘:‘ccc‘,
"4":‘ddd‘,
}
#d1={‘Alex‘:111,‘Wang‘:222}
d[‘5‘]=‘fff‘ #當查詢不存在這個鍵時,就會添加。
print(d)
d[‘1‘]=‘111‘ #當查詢存在這個鍵時,如果值不對就會修改該值。
print(d)

d2=d.get(‘5‘) #用get方法,找到不存在只會返回None,不會報錯
print(d2)

#del d[‘1‘]#python內置的通用刪除方法


#d.pop(‘2‘)#字典裏的pop必須指定刪除對象
d.popitem()
print(d)

d.clear() #清空字典

print(d)


運行結果:

{‘1‘: ‘aaa‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘, ‘5‘: ‘fff‘}

{‘1‘: ‘111‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘, ‘5‘: ‘fff‘}

{‘1‘: ‘111‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘}

{}



註:

  1. 當查詢的鍵不存在時,會默認添加。

  2. get()查詢某個鍵查詢不到時,只會返回None,不會報錯。

    多級字典的嵌套及操作:

info ={
‘NJ‘:{
‘建鄴區‘:[‘A‘,‘B‘,‘C‘],
‘江寧區‘:[‘AA‘,‘BB‘,‘CC‘],
},
‘SZ‘:{
‘福田區‘:[‘1‘,‘2‘,‘3‘],
‘高新區‘:[‘11‘,‘22‘,‘33‘],
}
}
print(info)
info[‘NJ‘][‘建鄴區‘][2]=55 #可以修改鍵裏面的值
print(info)
info.setdefault(‘JD‘,{‘SSS‘:[1,2]}) #查不到的可以添加 key-value
print(info)
info.setdefault(‘SZ‘,{‘SSS‘:[1,2]}) #無法修改 鍵對應的值
print(info)

運行結果:

{‘NJ‘: {‘建鄴區‘: [‘A‘, ‘B‘, ‘C‘], ‘江寧區‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田區‘: [‘1‘, ‘2‘, ‘3‘], ‘高新區‘: [‘11‘, ‘22‘, ‘33‘]}}

{‘NJ‘: {‘建鄴區‘: [‘A‘, ‘B‘, 55], ‘江寧區‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田區‘: [‘1‘, ‘2‘, ‘3‘], ‘高新區‘: [‘11‘, ‘22‘, ‘33‘]}}

{‘NJ‘: {‘建鄴區‘: [‘A‘, ‘B‘, 55], ‘江寧區‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田區‘: [‘1‘, ‘2‘, ‘3‘], ‘高新區‘: [‘11‘, ‘22‘, ‘33‘]}, ‘JD‘: {‘SSS‘: [1, 2]}}

{‘NJ‘: {‘建鄴區‘: [‘A‘, ‘B‘, 55], ‘江寧區‘: [‘AA‘, ‘BB‘, ‘CC‘]}, ‘SZ‘: {‘福田區‘: [‘1‘, ‘2‘, ‘3‘], ‘高新區‘: [‘11‘, ‘22‘, ‘33‘]}, ‘JD‘: {‘SSS‘: [1, 2]}}

其他操作:

d = {
‘1‘:‘aaa‘,
‘2‘:‘bbb‘,
‘3‘:‘ccc‘,
"4":‘ddd‘,
}
a ={
‘1‘:‘111‘,
‘d‘:123,
888:999,
}
d.update(a) #合並列表,並且以被合並的數據為最新的數據更新字典
print(d)
print(d.items()) #轉換為列表

運行結果:

{‘1‘: ‘111‘, ‘2‘: ‘bbb‘, ‘3‘: ‘ccc‘, ‘4‘: ‘ddd‘, ‘d‘: 123, 888: 999}

dict_items([(‘1‘, ‘111‘), (‘2‘, ‘bbb‘), (‘3‘, ‘ccc‘), (‘4‘, ‘ddd‘), (‘d‘, 123), (888, 999)])

循環讀取字典:

for key in d:
print(key,d[key])

for item,key in d.items(): #會先把dictionary轉成list,數據裏大時莫用
print(item,key)

運行結果:

1 aaa

2 bbb

3 ccc

4 ddd

1 aaa

2 bbb

3 ccc

4 ddd


本文出自 “NJ小生” 博客,請務必保留此出處http://000011211684.blog.51cto.com/9853378/1980932

Python字典使用(八)