在python函数中返回多个值

我试图在 python 中将 *args 与 for 循环一起使用,但是我没有看到如何返回传递给函数的所有值,该函数应该返回所有偶数


def f_even(*args):

    for item in args:

        if item%2 == 0:

            return item

上面的代码只返回第一个值,因为我猜在返回后它会退出函数。确实,如果我改用打印,它会起作用


当我将 (1,2,3,4,5) 传递给函数时,我试图找到一种方法来返回包含所有偶数的元组


谢谢!


FFIVE
浏览 229回答 3
3回答

米琪卡哇伊

您可以稍微修改您的函数并使用yield. 这样你的函数在返回第一个偶数后不会结束,而是会继续一个一个地产生它们。def f_even(*args):    for item in args:          if item%2 == 0:             yield itemfor i in f_even(1,2,3,4,5):    print(i)输出:24或者,如果您想存储所有产生的值:even_numbers = list(f_even(1,2,3,4,5))print(even_numbers) # -> [2, 4]

撒科打诨

搞定了,谢谢大家!!def f_even(*args):    mylist = []    for item in args:          if item%2 == 0:            mylist.append(item)    return mylist

MYYA

在 python 中,你可以使用列表理解来做到这一点。将使您的代码更具可读性,并且也会缩小它。def f_even(*args):        return [elem for elem in args if elem % 2 == 0]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python