繁体   English   中英

字典子列表的迭代-Python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM