欢迎光临散文网 会员登陆 & 注册

effective python读书笔记——get处理不在字典中的情况

2021-11-23 08:56 作者:与时代脱轨的级数  | 我要投稿

#处理键不在字典中的情况


#查询字典中是否有某键,有则键值+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)

运行结果





effective python读书笔记——get处理不在字典中的情况的评论 (共 条)

分享到微博请遵守国家法律