如何从列表的倍数中找到偶数并将它们全部加在一起?
例如:
我有这个功能来开始这个
def sum_even_lol(lol):
和
sum_even_lol([[1,2,3],[6,5,4],[5,7,9]])
所以它将是2 + 6 + 4(由代码完成的计算)
应该返回12。
答案 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])
轻松获取列表中的数字总和。我认为你应该能够将这些结合在一起,从这里做你想做的事情!