Python函数返回列表

时间:2019-03-20 03:01:50

标签: 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])

非常感谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您的函数未返回任何内容。您可能想通过以下方式获取元素

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每次迭代该函数时都会返回一个元素-且仅返回一次元素。因此该函数也称为“生成器”。有an excellent post about yield。我无法解释得更好。


更新:请勿使用list作为变量名,list是内置方法。