列表python中列表中偶数的总和

时间:2014-11-26 22:46:03

标签: python list nested-loops

如何从列表的倍数中找到偶数并将它们全部加在一起?
例如:
我有这个功能来开始这个

def sum_even_lol(lol):


sum_even_lol([[1,2,3],[6,5,4],[5,7,9]])

所以它将是2 + 6 + 4(由代码完成的计算)
应该返回12。

4 个答案:

答案 0 :(得分:3)

您可以将列表列表转换为平面列表,然后仅过滤偶数并将其添加到生成器表达式中,如下所示:

def sum_even_lol(lol):
    return sum(n for l in lol for n in l if not n % 2)

或者如果您发现嵌套生成器的可读性低于理想值,则可以使用sum()来减少 - 但您必须记住提供一个空数组作为初始值:

    return sum(n for n in sum(lol, []) if not n % 2)

答案 1 :(得分:1)

你可以通过简单的列表理解找到平均值:

evens = [item for i in lol for item in i if item%2==0]

返回总和:

return sum(evens)

总之,函数定义看起来像这样:

def sum_even_lol (lol):
    evens = [item for i in lol for item in i if item%2==0]
    return sum(evens)

答案 2 :(得分:1)

您可以使用:

sum(val for v in l for val in v if val % 2 == 0)

答案 3 :(得分:0)

我对你的确切要求有点不清楚,但这些想法可能有所帮助。

类似的东西:

evens = [element for element in my_list if element%2 == 0]

将返回一个列表evens,该列表只包含列表my_list中的偶数元素。

您也可以使用

list_sum = sum([my_list])

轻松获取列表中的数字总和。我认为你应该能够将这些结合在一起,从这里做你想做的事情!