首页 > 解决方案 > Python函数返回列表

问题描述

Python新手在这里。我编写了这个函数,只返回偶数作为一个列表,但我没有这样做。你能帮忙吗?这是我的初始函数,它工作正常,但结果没有作为列表出现:

def myfunc (*args):
    for num in args:
        if num % 2 == 0:
            print (num)

例如,当您使用以下参数调用该函数时:

myfunc(1,2,3,4,5,6,7,8,9,10)

我正进入(状态:

2
4
6
8
10

但我需要那些在列表中,我错过了什么?这也不起作用:

list = []
def myfunc (*args):
    for num in args:
        if num % 2 == 0:
            print (list[num])

非常感激!

标签: python

解决方案


你的函数没有返回任何东西。您可能希望通过以下方式获取元素

def myfunc (*args):
    for num in args:
        if num % 2 == 0:
            yield num

或者创建一个临时列表:

def myfunc (*args):
    lst = []
    for num in args:
        if num % 2 == 0:
            lst.append(num)
    return lst

您可以在 REPL 中检查您的返回值:

>> type(print(num)) # print() returns None
NoneType

说明:简而言之,yield每次迭代函数时返回一个元素 - 并且只返回一个元素一次。因此该函数也称为“生成器”。有一篇关于yield. 我无法比它更好地解释。


更新:不要list用作变量名,list是一个内置方法。


推荐阅读