如何将所有偶数相加?

2024-10-05 13:16:07 发布

您现在位置:Python中文网/ 问答频道 /正文

number = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
godlike = []


#Check closest object
def total_num(number):

    for x in number:
        if x % 2 == 0:
           godlike.append(x)
           print(x)

Tags: innumberforifobjectdefchecknum
3条回答

您是要打印一个数字的垂直列表,还是在列表填写完毕后打印在末尾的括号中?你知道吗

您可以尝试使用如下主块调用函数:

number = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 
godlike = []

def total_num(num):
    for x in num:
        if x % 2 == 0:
           godlike.append(x)
           print(x)

if __name__ == "__main__":
    total_num(number)

或者你也可以像上帝一样打印列表:

number = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] 
godlike = []

def total_num(num):
    for x in num:
        if x % 2 == 0:
           godlike.append(x)
    print(godlike)

if __name__ == "__main__":
    total_num(number)

如果您的数字列表是一个完整的整数间隔,只需检查第一个元素是偶数还是非偶数,然后对列表的一个部分求和。你知道吗

>>> numbers = range(1, 21)
>>> sum(numbers[ numbers[0]%2 : : 2 ])
110

如果您的列表由任意整数组成,请使用列表。你知道吗

>>> import random
>>> random.shuffle(numbers)
>>> sum([n for n in numbers if not n%2])
110

Oneliners are the best liners...

from functools import reduce
number = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20]
even_only = list(filter(lambda x: x % 2 == 0, number))
sum_of_all = reduce((lambda x, y: x + y), even_only)

sum_of_all
110

现在,您的函数将每个偶数追加到godlike,并打印每个x。我建议使用filterreduce,如果您想得到所有偶数值的总和。你知道吗

你也可以把even_onlysum_of_all结合起来,一下子就能做到。如果要执行其他操作,Reduce提供了一些灵活性:

sum_of_all = reduce((lambda x, y: x + y),filter(lambda x: x % 2 == 0, number))

sum_of_all
110

如果只查找总和,则使用sum的附加选项:

sum_of_all = sum(filter(lambda x: x % 2 == 0, number))

sum_of_all
110

Reduce and Filter的文档

相关问题 更多 >

    热门问题