effective python读书笔记——get处理不在字典中的情况
#处理键不在字典中的情况
#查询字典中是否有某键,有则键值+1,无则创建新键,值+1
#常规方法: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关联
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方法
#查询字典里是否有某键有则返回值,无则将提供的默认值此键关联并插入字典
key='wsz'
name=dictionaries.setdefault(key,[])
name.append('nb')
print(dictionaries)
