Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python将计数器附加到计数器,就像Python字典更新一样_Python_Python 3.x_Dictionary_Counter_Python Collections - Fatal编程技术网

Python将计数器附加到计数器,就像Python字典更新一样

Python将计数器附加到计数器,就像Python字典更新一样,python,python-3.x,dictionary,counter,python-collections,Python,Python 3.x,Dictionary,Counter,Python Collections,我有两个计数器(集合中的计数器),我希望将一个计数器附加到另一个计数器,而第一个计数器中的重叠键将被忽略。像(python字典更新) 例如: from collections import Counter a = Counter(a=4, b=0, c=1) b = Counter(z=1, b=2, c=3) 例如(忽略第一个计数器中的重叠键): 我想我总是可以把它转换成某种字典,然后再转换回计数器,或者使用一个条件。但我想知道是否有更好的选择,因为我在一个相当大的数据集上使用它。,因此您可

我有两个计数器(集合中的计数器),我希望将一个计数器附加到另一个计数器,而第一个计数器中的重叠键将被忽略。像(python字典更新)

例如:

from collections import Counter
a = Counter(a=4, b=0, c=1)
b = Counter(z=1, b=2, c=3)
例如(忽略第一个计数器中的重叠键):

我想我总是可以把它转换成某种字典,然后再转换回计数器,或者使用一个条件。但我想知道是否有更好的选择,因为我在一个相当大的数据集上使用它。

,因此您可以显式调用
dict.update
(而不是
Counter.update
),并将两个计数器作为参数传递:

a = Counter(a=4, b=0, c=1)
b = Counter(z=1, b=2, c=3)

dict.update(a, b)

print(a)
# Counter({'a': 4, 'c': 3, 'b': 2, 'z': 1})
你也可以使用


我想你可以对b中的key做
:如果key不在a:a[key]=b[key]
我试过了,但它返回a
NoneType
。“我错过什么了吗?”谢尔顿齐当然。它在适当的位置修改
a
,因此它不必返回任何内容。@Aran Fey Oh smart,您可以调用
dict.update
而不是
Counter.update
。比我一开始想象的要微妙得多,干得好。为什么不使用
a.update(b)
?我刚刚检查了一下,结果还是一样的。
a = Counter(a=4, b=0, c=1)
b = Counter(z=1, b=2, c=3)

dict.update(a, b)

print(a)
# Counter({'a': 4, 'c': 3, 'b': 2, 'z': 1})
from collections import Counter
a = Counter(a=4, b=0, c=1)
b = Counter(z=1, b=2, c=3)
Counter({**a, **b})
Counter({'a': 4, 'c': 3, 'b': 2, 'z': 1})