如何对字典元素求和

在Python中,我有字典列表:


dict1 = [{'a':2, 'b':3},{'a':3, 'b':4}]

我想要一个最终的字典,其中将包含所有字典的总和。即结果将是:{'a':5, 'b':7}


注意:列表中的每个字典将包含相同数量的键,值对。


杨魅力
浏览 2288回答 3
3回答

翻过高山走不出你

您可以使用collections.Countercounter = collections.Counter()for d in dict1:     counter.update(d)或者,如果您更喜欢单线:functools.reduce(operator.add, map(collections.Counter, dict1))

心有法竹

sum()当添加多个命令时,利用杠杆应该可以获得更好的性能>>> dict1 = [{'a':2, 'b':3},{'a':3, 'b':4}]>>> from operator import itemgetter>>> {k:sum(map(itemgetter(k), dict1)) for k in dict1[0]}        # Python2.7+{'a': 5, 'b': 7}>>> dict((k,sum(map(itemgetter(k), dict1))) for k in dict1[0])  # Python2.6{'a': 5, 'b': 7}加上斯蒂芬的建议>>> {k: sum(d[k] for d in dict1) for k in dict1[0]}            # Python2.7+{'a': 5, 'b': 7}>>> dict((k, sum(d[k] for d in dict1)) for k in dict1[0])      # Python2.6{'a': 5, 'b': 7}我认为Stephan的Python2.7代码版本读起来非常好
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python