我有几个返回字典的函数。
让我们说funcA
返回:{'cat': 2, 'dog': 3, 'cAt': 1}
然后funcB
返回{'cat': 1, 'dog': 1, 'cAt': 1, 'man' : 1}
我尝试使用new_dict = {}
将它们附加到Counter
所以我最终会得到这个
new_dict = `{'cat': 3, 'dog': 4, 'cAt': 2, 'man' : 1}`
(我想附加键并将值求和到每个唯一键中)
因此,对于每个函数调用,我都做了:
new_dict += Counter(func())
但是后来我发现每个函数都超过了-进行了先前的函数调用,或者在某些情况下出现了Type错误:
TypeError: unsupported operand type(s) for +=: 'dict' and 'Counter'
我如何正确执行它?
答案 0 :(得分:0)
您应该将new_dict
初始化为Counter
对象而不是字典,以便它将使用Counter.__iadd__
方法对new_dict += Counter(func())
进行计数所需的更新:< / p>
new_dict = Counter()
答案 1 :(得分:0)
您可以尝试:
new_dict = Counter(funcA()) + Counter(funcB())
请注意,new_dict将是一个Counter对象。如果不需要的话,可以将其转换回字典。