python 定义一个函数myfunc,它接受任意数量的参数,并返回一个只包含偶数参数的列表[duplicate]

yv5phkfx  于 2022-12-25  发布在  Python
关注(0)|答案(3)|浏览(142)
    • 此问题在此处已有答案**:

How can I use return to get back multiple values from a loop? Can I put them in a list?(2个答案)
2年前关闭。

def myfunc(*args):
    for x in args:
        if x% 2== 0:
            return x
        else:
            pass

我想知道为什么这段代码只返回一个值。

q3qa4bjr

q3qa4bjr1#

你可以使用列表解析,它是最简单、最短、最Python的:

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

或者,继续使用循环方法,你必须收集偶数,而不仅仅是返回第一个,你也可以省略else: pass,因为它什么也不做:

def myfunc(*args):
    even = []
    for x in args:
        if x % 2 == 0:
            even.append(x)
    return even
lpwwtiir

lpwwtiir2#

因为当你得到第一个偶数的时候,你就“返回”它。如果你想得到每一个偶数,在循环过程中把它存储到一个列表中,并在循环结束后返回列表。

0aydgbwb

0aydgbwb3#

我想知道为什么这段代码只返回一个值
因为这就是你要它做的,return会立即从函数返回你给它的任何值,因为你一遇到偶数参数就返回return x,这就是函数返回的值:第一个偶数参数。
如果你想要多个值,你需要将你的事件 accumulate 到一个结构中(例如一个列表),或者创建一个 generator function,它可以yield多个值,而不是立即返回一个值。

相关问题