我尝试使用以下代码求和其他字典中存在的键的值:
import functools
import operator
import collections
my_dict = [{'a':0, 'b':1, 'c':5}, {'b':3, 'c':2}, {'b':1, 'c':1}]
sum_key_value = functools.reduce(operator.add, map(collections.Counter, my_dict))
print(sum_key_value)
# Output
# Counter({'c': 8, 'b': 5})
我的问题是,是否希望输出保留所有字典键,即使该键未像a
我的情况一样出现在所有字典中,那么最好的方法是不使用循环呢?
嗯,有很多不错的方法可以使用for循环来实现,但是由于您特别想避免for
循环,因此这是一种方法:
sum_key_value = dict(functools.reduce(lambda a, b: a.update(b) or a,
my_dict, collections.Counter()))
因此,这里发生的是您创建一个计数器,并使用它来累加值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句