如果我有两个计数器对象,并且我想合并它们,从其中添加新值,并在两个计数器包含相同值时保留最大计数。
Counter a = { "apple":3, "peach":1, "pears":7, "watermelon":2, "grapes":7 }
Counter b = { "apple":12, "kiwi":9, "grapes":2, "pears":21, "pineapple":2, "oranges":2 }
#desired output
counter c = { "apple":12, "pears":21, "grapes":7 "peach":1, "watermelon":2, "pineapple":2, "oranges":2}
Run Code Online (Sandbox Code Playgroud)
目前我已经尝试更新计数器,但这似乎合并了两个计数器,但将它们的计数相加。我只想合并计数器并保留最大值或添加到计数器(如果还没有)。
OP编辑他们的问题后,只需使用按位或()运算符即可实现所需的输出|:
from collections import Counter
a = Counter({ "apple":3, "peach":1, "pears":7, "watermelon":2, "grapes":7 })
b = Counter({ "apple":12, "kiwi":9, "grapes":2, "pears":21, "pineapple":2, "oranges":2 })
c = a | b
print(c)
>> Counter({'pears': 21, 'apple': 12, 'kiwi': 9, 'grapes': 7, 'watermelon': 2, 'oranges': 2,
'pineapple': 2, 'peach': 1})
Run Code Online (Sandbox Code Playgroud)