Fork me on GitHub

字典的setdefault() 和get()方法比较

Python 字典

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()方法:

>>> 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)

  

posted @ 2018-05-07 22:19  暮良文王  阅读(2154)  评论(0编辑  收藏  举报