首页 > 解决方案 > 使用列表推导的嵌套列表中的元素总和

问题描述

我正在尝试计算每个嵌套列表中为正的元素的总和。

    data = [[10, 6, -1, 2, -4, 3, -10, -3, -2, 4],
    [0, -3, -9, -1, 2, 6, -5, 8, -7, 0],
    [-2, -10, -2, -7, 8, 0, 1, 0, 8, -5]]

    sum_l = 0
    sum_list : list = list()
    sum_list = [[(sum_l+=y) for y in x] for x in data if y > 0]

我是这样写的,但它给出了一个错误:(sum_l+=y) 中的语法无效。我该如何解决它,以及如何正确使用列表推导?

谢谢!

标签: pythonlistlist-comprehension

解决方案


Use sum to sum the inner lists:

data = [[10, 6, -1, 2, -4, 3, -10, -3, -2, 4],
        [0, -3, -9, -1, 2, 6, -5, 8, -7, 0],
        [-2, -10, -2, -7, 8, 0, 1, 0, 8, -5]]

result = [sum(e for e in lst if e > 0) for lst in data]
print(result)

Output

[25, 16, 17]

Resources:


推荐阅读