Python:我做错了什么?

时间:2011-09-16 04:20:26

标签: python list function

我想让这个功能起作用:

def getEvenNumbers (numbers):

    bo = []
    for num in numbers:
         bo.append(num)
         if num % 2 == 0:
           return bo

getEvenNumbers([1, 4, 8, 9])会返回[4]

我希望有更多结果,例如[4,8],但它不起作用,我只得到[4]?我做错了什么?

3 个答案:

答案 0 :(得分:8)

一旦发现其中一个号码是偶数,你就会返回。

def get_even_numbers(numbers):
    bo = []
    for num in numbers:
        if num % 2 == 0:
            bo.append(num)
    return bo

或者:

def get_even_numbers(l):
    return [n for n in l if n % 2 == 0]

答案 1 :(得分:2)

实际上你当前给出的代码将返回[1,4],而不是[4]。您的函数当前只是将数字附加到列表中,直到找到第一个偶数,然后返回。

你想要这样的东西:

def getEvenNumbers(numbers):
    return [n for n in numbers if not n % 2]

答案 2 :(得分:1)

试试这个:

def getEvenNumbers (numbers):

    bo = []
    for num in numbers:
         if num % 2 == 0:
           bo.append(num)
    return bo