我试图在 python 中将 *args 与 for 循环一起使用,但是我没有看到如何返回传递给函数的所有值,该函数应该返回所有偶数def f_even(*args): for item in args: if item%2 == 0: return item上面的代码只返回第一个值,因为我猜在返回后它会退出函数。确实,如果我改用打印,它会起作用当我将 (1,2,3,4,5) 传递给函数时,我试图找到一种方法来返回包含所有偶数的元组谢谢!
3 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
您可以稍微修改您的函数并使用yield. 这样你的函数在返回第一个偶数后不会结束,而是会继续一个一个地产生它们。
def f_even(*args):
for item in args:
if item%2 == 0:
yield item
for i in f_even(1,2,3,4,5):
print(i)
输出:
2
4
或者,如果您想存储所有产生的值:
even_numbers = list(f_even(1,2,3,4,5))
print(even_numbers) # -> [2, 4]
撒科打诨
TA贡献1934条经验 获得超2个赞
搞定了,谢谢大家!!
def f_even(*args):
mylist = []
for item in args:
if item%2 == 0:
mylist.append(item)
return mylist
MYYA
TA贡献1868条经验 获得超4个赞
在 python 中,你可以使用列表理解来做到这一点。将使您的代码更具可读性,并且也会缩小它。
def f_even(*args): return [elem for elem in args if elem % 2 == 0]
添加回答
举报
0/150
提交
取消