effective python讀書筆記——get處理不在字典中的情況
#處理鍵不在字典中的情況
#查詢字典中是否有某鍵,有則鍵值+1,無則創(chuàng)建新鍵,值+1
#常規(guī)方法:in 或 KeyError
dictionary={'first':1,'second':2}
key1='third'
if key1 in dictionary:
? ? count1=dictionary[key1]
else:
? ? count1=0
dictionary[key1]=count1+1
#簡化key1:
if key1 not in dictionary:
? ? dictionary[key1]=0
dictionary[key1]+=1
key2='forth'
try:
? ? count2=dictionary[key2]
except KeyError:
? ? count2=0
dictionary[key2]=count2+1
#簡化key2
try:
? ? dictionary[key2]+=1
except KeyError:
? ? dictionary[key2]=1
#get方法 第一個參數為想查詢的鍵,第二個參數是鍵不存在時返回的默認值
key3='fifth'
count3=dictionary.get(key3,0)
dictionary[key3]=count3+1
print(dictionary)

#如果字典保存的數據類型比較復雜,如list
dictionaries={'first':['a','A'],'second':['b','B']}
key1='third'
value1='c'
value2='C'
if key1 in dictionaries:
? ? list1=dictionaries[key1]
else:
? ? dictionaries[key1]=list1=[]#完成空白列表賦給list1,并與key1關聯(lián)
list1.append(value1)
try:
? ? list2=dictionaries[key1]
except KeyError:
? ? dictionaries[key1]=list2=[]
list2.append(value2)
#用get改寫
key2='forth'
value3='d'
value4='D'
list3=dictionaries.get(key2)
if list3 is None:
? ? dictionaries[key2]=list3=[]
list3.append(value3)
#加上海象運算符
if(list4:=dictionaries.get(key2)) is None:
? ? dictionaries[key2]=list4=[]
list4.append(value4)
#setdefault方法
#查詢字典里是否有某鍵有則返回值,無則將提供的默認值此鍵關聯(lián)并插入字典
key='wsz'
name=dictionaries.setdefault(key,[])
name.append('nb')
print(dictionaries)
