Python 2.7.14:"+ = 1到字典项,如果密钥存在等于= 1"语法不起作用

Iza*_*cch 3 python dictionary

我试图+ = 1到词典中的一个项目,如果它存在,否则在词典中创建键并将其设置为1.我知道我可以使用多行逻辑,但我真的想要看看是否可以将逻辑保持在一条线上.这就是我想要做的:

myDict = {}
myDict[100] += 1 if 100 in myDict else 1
Run Code Online (Sandbox Code Playgroud)

如果密钥100不存在,它会抛出KeyError.如何设置一个内置的其他逻辑来将密钥100设置为1?它甚至可能吗?

非常感谢

zwo*_*wol 8

问题是这被解析为

myDict[100] += (1 if 100 in myDict else 1)
Run Code Online (Sandbox Code Playgroud)

这和写作一样

myDict[100] += 1
Run Code Online (Sandbox Code Playgroud)

当然,这需要myDict[100]已经存在.您可以使用常规赋值和字典get方法,它允许您指定在键不存在时要返回的内容:

myDict[100] = myDict.get(100, 0) + 1
Run Code Online (Sandbox Code Playgroud)

或者你可以使用collections.Counter,这是一个专门为这项工作设计的专用字典:

import collections
myDict = collections.Counter()
myDict[100] += 1
Run Code Online (Sandbox Code Playgroud)