我有一个词典列表,例如:
list_d = [{"a":1},{"b":2,"c":3}]
(案例1)
for item in list_d:
# add values of each sub-list's dicts
(案例2)
for item in list_d[1]:
# add values of the specific sub-list of dict
(case1)它返回每个子列表的dict值的总和。
(case2)仅返回字典的键。
是否有一种有效的方法来获取子列表(case2)的字典以便添加值?
答案 0 :(得分:0)
以下是一种方法:
Matrix
也就是说,从0开始(作为第一个reduce(lambda x,y: x + sum(y.values()), list_d, 0)
),在x
中的每个dict
中添加所有值的总和。
这是另一种方式:
list_d
即,将sum(sum(x.values()) for x in list_d)
中每个dict
的值之和相加。
答案 1 :(得分:0)
Antti指出,目前还不清楚你的要求是什么。我建议您查看Python中用于Functional programming
的内置工具请考虑以下示例:
from operator import add
list_d = [{"a":1},{"b":2,"c":3}]
case_1 = map(lambda d: sum(d.values()), list_d)
case_2 = reduce(add, map(lambda d: sum(d.values()), list_d))