[英]Iteration over a sub-list of dictionaries -Python
我有一个字典列表,例如:
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)的字典,以便添加值?
这是一种实现方法:
reduce(lambda x,y: x + sum(y.values()), list_d, 0)
也就是说,从0(作为第一个x
)开始,将list_d
中每个dict
中所有值的总和相加。
这是另一种方式:
sum(sum(x.values()) for x in list_d)
也就是说,求和( list_d
每个dict
的值之和)。
正如Antti指出的那样,您不清楚要什么。 我建议您看看Python中用于函数式编程的内置工具
请考虑以下示例:
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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.