我可以同时向字典添加键并为键分配键+ 1值吗?
我在解释器中的原始脚本看起来像这样:
>>> if isinstance('my current string', basestring):
... mydictionary[mynewkey] = mydictionary[mynewkey] + 1
我得到的错误如下所示:
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
NameError: name 'mynewkey' is not defined
因此,我想向mydictionary添加mynewkey和新值1,并最终能够打印mydictionary并提出
{mynewkey: 1}
。 最佳答案
一种方法是使用dict.get()
:
mydictionary[mynewkey] = mydictionary.get(mynewkey, 0) + 1
在这里
mydictionary.get(mynewkey, 0)
将返回mynewkey
中命名的键的值,或者如果没有这样的键,则返回0
。最简单的方法是使用
collections.defaultdict()
object,将int
用作工厂:from collections import defaultdict
mydictionary = defaultdict(int)
您尝试访问的任何尚不存在的密钥都将初始化为
0
,您可以简单地执行以下操作:if isinstance('my current string', basestring):
mydictionary[mynewkey] += 1
它会工作!
关于python - 在Python中同时向字典添加键和+ 1值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26675498/