Python字典的setdefault() 和get()方法比较
setdefault() 函数 —有key获取值、没key设置 key:default
dict.setdefault(key, default=None)
-
如果 key 在 字典中,返回对应的值。
-
如果 key 不在字典中,则插入 key 及设置的默认值 default,并返回 default ,default 默认值为 None。
get()函数—有key获取值、没key返回default:
dict.get(key, default=None)
- 返回指定键的值,如果值不在字典中返回默认值 None。
话不多说,上栗子:
setdefault()方法:
>>> dict = {}
>>> dict['成龙'] = '演员' #添加键值对
>>> dict
{'成龙': '演员'}
>>> dict.setdefault('成龙' , 'Duang') # 值('演员')存在,故返回值('演员'),而不是'Duang'
'演员'
>>> dict
{'成龙': '演员'}
>>> dict.setdefault('窦唯' , '歌手')
'歌手'
>>> dict
{'成龙': '演员', '窦唯': '歌手'}
get()方法:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> dict.setdefault('波多',18)
18>>> dict
{'成龙': '演员', '窦唯': '歌手', '波多': 18}
>>> dict.get('成龙')
'演员'
>>> dict.get('波多')
18
附练习:
# 循环迭代message字符串中每个字符,计算每个字符出现的次数
# 涉及的技能包:1.字典的get()和setdeafult()方法 2.漂亮打印pprint
import pprint
message = 'It was a bright cold day in May,andd the clocks were striking thirteen.'
count = {}
#1 字典的setdefault()方法
for character in message:
count.setdefault(character,0) #查询此次计数前此字母出现的次数
count[character] = count[character] + 1 #更新次数(for每次遍历一个字母,故次数加一)
pprint.pprint (count)
count1 = {}
#2 字典的get()方法
for character in message:
count1[character] = count1.get(character,0)+ 1 #查询出现次数,并加一
print (count1)