如何在python中的多个列表中添加偶数

时间:2014-11-27 22:43:24

标签: python list

例如,列表为[1,2,3][4,5,6][7,8,9]。我想在所有列表中只添加偶数,所以这将是2 + 4 + 6 + 8 = 20。我该怎么做呢?

5 个答案:

答案 0 :(得分:1)

你可以这样做,例如:

l = [[1,2,3], [4,5,6], [7,8,9]]
sum(val for v in l for val in v if val % 2 ==0)

答案 1 :(得分:1)

只需循环遍历每个列表,并总结偶数值。

theSum = 0
lists = [[1,2,3],[4,5,6],[7,8,9]]

for list in lists:
    for item in list:
        if item % 2 == 0:   
            theSum += item

此上下文中使用的(%)符号称为模数,当数字除以另一个时,它将返回余数的数量。到目前为止的例子中,任何可以除以2而没有任何余数的数字都是偶数,例如8%2返回0.

       if item % 2 == 0:   
            theSum += item

正如您在if语句中所看到的,我们会检查所有项目并测试它们是否可以除以2而不会留下余数。如果它们可以,我们将它们加在一起。

Here is more information about modulus.

答案 2 :(得分:0)

a = [1, 2, 3]
b = [4, 5, 6]
c = [7, 8, 9]
sum = 0
for x in a+b+c:
  if x%2 == 0:
    sum += x

答案 3 :(得分:0)

有很多解决方案,但这是一个很好的开始。

您可以将所有列表合并为一个列表:

lst =[1,2,3] + [4,5,6] + [7,8,9]

然后你可以列出一个简单的列表:

new_list = [n for n in lst if is_even(n)]

注意:你必须写is_even

def is_even(n):
    # return True if even
    # otherwise return False

然后,您可以遍历列表并将列表中的所有数字相加。

答案 4 :(得分:0)

a=[1,2,3]
b=[4,5,6]
c=[7,8,9]
sum(filter(lambda x:x%2==0,a+b+c))