这里是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])
非常感谢!
答案 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
是内置方法。