Python 添加添加为空的计数器对象

Python 添加添加为空的计数器对象,python,Python,我试图理解这种行为: >>> Counter({'a':0}) Counter({'a': 0}) >>> Counter({'a':0}) + Counter({'a':0}) Counter() >>> len(Counter({'a':0})) 1 >>> len(Counter({'a':0}) + Counter({'a':0})) 0 这对我来说似乎不一致——想法?不,这并不矛盾。对两个计数器类求和时,忽略负计

我试图理解这种行为:

>>> Counter({'a':0})
Counter({'a': 0})
>>> Counter({'a':0}) + Counter({'a':0})
Counter()
>>> len(Counter({'a':0}))
1
>>> len(Counter({'a':0}) + Counter({'a':0}))
0

这对我来说似乎不一致——想法?

不,这并不矛盾。对两个计数器类求和时,忽略负计数和零计数。有关更多详细信息,请参阅本文档中的注释部分:

文档对此非常明确;计数为0的键在对两个计数器求和时被丢弃。我查找了有关此行为的文档,但找不到,这是我查找的地方。还有其他建议吗?引用该页的一句话:加法和减法通过增加或减少相应元素的计数来组合计数器。交集和并集返回相应计数的最小值和最大值。每个操作都可以接受带符号计数的输入,但输出将排除计数为零或更少的结果;我对链接副本的回答强调了确切的措辞。