我可以同时向字典添加键并为键分配键+ 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/

10-08 22:13