Python 蟒蛇:我做错了什么?

Python 蟒蛇:我做错了什么?,python,list,function,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]?我做错了什么?一旦发现其中一个数字为偶数,您就会返回 def get_e

我想让此函数正常工作:

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]
?我做错了什么?

一旦发现其中一个数字为偶数,您就会返回

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

试试这个:

def getEvenNumbers (numbers):

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

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

你想要的是:

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

你刚才问过的副本。请更仔细地阅读它的答案,我的答案确切地说明了如何做到这一点——积累到一个列表中,然后在完成后返回。是的…agf…我遵循了这一步骤…更多的原因是我甚至对我在做什么感到困惑wrong@agf这个问题怎么会是个骗局?好吧,我只是想弄清问题的真相。它以前也发生过一次,我认为这是我所做的。谢谢NullUser…我不敢相信它只是返回函数的位置…非常感谢
def getEvenNumbers(numbers):
    return [n for n in numbers if not n % 2]