我正在寻找一种方便,安全的python词典键访问方法。我想到了三种方法。
data = {'color': 'yellow'}
# approach one
color_1 = None
if 'color' in data:
color_1 = data['color']
# approach two
color_2 = data['color'] if 'color' in data else None
# approach three
def safe(obj, key):
if key in obj:
return obj[key]
else:
return None
color_3 = safe(data, 'color')
#output
print("{},{},{}".format(color_1, color_2, color_3))
所有三种方法都起作用。但是,是否有任何简单的方法可以实现此目的,而无需使用多余的if
或自定义功能?
我相信应该有,因为这是一个非常普遍的用法。
您错过了dict.get()
:
color_1 = data.get('color')
如果丢失了键,它将返回None
。您可以将其他默认值设置为第二个参数:
color_2 = data.get('color', 'red')
查看dict.get()
。如果字典中未找到密钥,您可以提供返回的值,否则它将返回None
。
>>> data = {'color': 'yellow'}
>>> data.get('color')
'yellow'
>>> data.get('name') is None
True
>>> data.get('name', 'nothing')
'nothing'