为了账号安全,请及时绑定邮箱和手机立即绑定

在python函数中返回多个值

在python函数中返回多个值

FFIVE 2021-09-11 10:25:45
我试图在 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]


查看完整回答
反对 回复 2021-09-11
?
撒科打诨

TA贡献1934条经验 获得超2个赞

搞定了,谢谢大家!!


def f_even(*args):

    mylist = []

    for item in args:

          if item%2 == 0:

            mylist.append(item)

    return mylist


查看完整回答
反对 回复 2021-09-11
?
MYYA

TA贡献1868条经验 获得超4个赞

在 python 中,你可以使用列表理解来做到这一点。将使您的代码更具可读性,并且也会缩小它。

def f_even(*args):   
    return [elem for elem in args if elem % 2 == 0]


查看完整回答
反对 回复 2021-09-11
  • 3 回答
  • 0 关注
  • 226 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信