Python安全词典钥匙访问



我正在寻找一种方便,安全的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'

相关内容

  • 没有找到相关文章

最新更新