我可以同时向字典添加一个键并为该键分配一个键 + 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
所以我想将 mynewkey 和新值 1 添加到 mydictionary,最终能够打印 mydictionary 并得出 {mynewkey: 1}。
请您参考如下方法:
一种方法是使用 dict.get() :
mydictionary[mynewkey] = mydictionary.get(mynewkey, 0) + 1
此处 mydictionary.get(mynewkey, 0) 将返回 mynewkey 中命名的键的值,如果没有则返回 0 key 存在。
最简单的方法是使用 collections.defaultdict() object ,以 int 作为工厂:
from collections import defaultdict
mydictionary = defaultdict(int)
任何您尝试访问但尚不存在的 key 都会被初始化为 0,您可以简单地执行以下操作:
if isinstance('my current string', basestring):
mydictionary[mynewkey] += 1
它会正常工作™
