返回列表的Python函数
Python新手。我写这个函数只是为了以列表的形式返回偶数,但我做不到这一点。你能帮忙吗?这是我的初始函数,工作正常,但结果不是列表:返回列表的Python函数,python,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 但我需要把它们列在一个列表中,我遗漏了什么?这也不起作用
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])
非常感谢 函数没有返回任何内容。您可能希望通过以下方式获取元素:
def myfunc (*args):
mylist = []
for num in args:
if num % 2 == 0:
mylist.append(num)
return mylist
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
每次迭代函数时都返回一个元素,并且只返回一次元素。因此,该函数也称为“生成器”。有。我解释得再好不过了
更新:不要使用
list
作为变量名,list
是一种内置方法。您永远不会将值添加到列表中,例如l.append(num)
。注意:不要使用list
作为变量名,它隐藏了python的list
类型。是的,我完全忘记了“list”是一个保留关键字,并且使用append方法添加到列表中……您可能想解释yield num
实际上是如何工作的。记住,他/她是个新手。(抱歉打扰您:P)注意:list
不是保留关键字,或者您无法用变量隐藏它,它是一个内置的。非常感谢!有效。快速提问,你怎么知道回报应该与for一致,而不是if一致?非常感谢。它需要与for
对齐,因为返回应该只在循环完成后发生。如果它与If
对齐,它将只通过一次循环。