8

这段代码还不错,但我想知道优秀的程序员会写出怎样的代码

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

3 回答 3

25

您可以使用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
于 2013-09-06T17:10:03.737 回答
7

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

if 'a' not in count:
    count['a'] = 0
于 2013-09-06T17:23:27.817 回答
1

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

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

事实上,如果标题在询问是否设置值时是正确的Nonesetdefault则不会设置该值,而是返回该值None

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

setdefault如果一个键的值为 None (而不是根本没有那个键,在这种情况下,这是要走的路),或者如果它是,我不认为这是一个非常常见的情况。根本不在里面。在这种情况下,以下应该可以工作,并且对我来说似乎是最pythonic。

if not a_dict.get('key'):
   a_dict['key'] = 'value'
于 2020-09-18T08:10:32.123 回答