Python合并两个计数器对象,保留最大的和

use*_*950 5 python counter

如果我有两个计数器对象,并且我想合并它们,从其中添加新值,并在两个计数器包含相同值时保留最大计数。

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)

目前我已经尝试更新计数器,但这似乎合并了两个计数器,但将它们的计数相加。我只想合并计数器并保留最大值或添加到计数器(如果还没有)。

Dee*_*ace 5

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)