假定有一个dict如下:
d = {
'x': 1,
'y': 2
}
正常情况下如果要获取某个key的值直接通过d[key]就可以获取。
但是大部分情况下,在真实的环境中,这个key有可能不存在。
如果使用下标的方法,那么需要捕捉KeyError错误或者先用if判断key是否存在。这样代码写起来非常的ugly。
这种情况下使用d.get(key)方法是最好的办法,尤其是如果不存在的时候我们需要一个默认值的时候。
# ugly code1
try:
v = d['z']
except KeyError as e:
v = 'vvv'
# ugly code2
if 'z' in d.keys():
v = d['z']
else:
v = 'vvv'
# pythonic code
v = d.get('z', 'vvv')
网友评论
strings = ('puppy', 'kitten', 'puppy', 'puppy',
'weasel', 'puppy', 'kitten', 'puppy')
counts = defaultdict(lambda: 0)
for s in strings:
counts[s] += 1