如果它是None,我如何在字典中pythonically设置一个值?

时间:2013-09-06 17:08:38

标签: python dictionary

这段代码还不错,但我想知道程序员如何编写代码

if count.get('a') is None:
    count['a'] = 0

3 个答案:

答案 0 :(得分:19)

您可以使用dict.setdefault

count.setdefault('a', 0)

dict.setdefault上的帮助:

>>> print dict.setdefault.__doc__
D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D

答案 1 :(得分:5)

setdefault是最佳答案,但为了记录,检查dict中密钥的Pythonic方法是使用in关键字:

if 'a' not in count:
    count['a'] = 0

答案 2 :(得分:0)

看着答案的选择,我认为这个问题的措词有些不正确。

在字典中设置无值吗?

实际上,如果标题是正确的,询问是否设置值为None,则setdefault不会设置该值,而是返回该None

a_dict = {'key': None}
assert a_dict.setdefault('key', True) is None

如果键的值是None(与根本没有那个键相反,在这种情况下,setdefault是的方式。)或者它根本不在那儿。在这种情况下,下面的方法应该起作用,并且对我来说似乎是最pythonic的。

if not a_dict.get('key'):
   a_dict['key'] = 'value'