将2个方法data.get('key_name')与`data ['key_name']或None`进行比较

时间:2016-06-15 02:18:43

标签: python

我有一个名为data的python字典变量,我试图获取'key_name'的值,如果它不存在,我希望它是None。

A = data.get('key_name')

B = data['key_name'] or None

我知道'key_name'是否为空字符串,A是''且B是None,也许还有一些其他原因我没有考虑,还有什么?比如,A可能比B更安全。

1 个答案:

答案 0 :(得分:2)

这将引发KeyError,因此您无法使用它:

B = data['key_name'] or None

就Python而言,第一种选择是最标准的方法:

A = data.get('key_name')

如果您对其他数据类型持开放态度,则可以始终使用defaultdict

你可以这样做,它也会起作用:

data = defaultdict(lambda: None)
C = data['key_name']
# C is now None

当您希望默认创建列表或类似的列表时,通常会使用defaultdicts。文档涵盖了这些案例。