在python函数中返回多个值

时间:2018-12-08 18:59:39

标签: python return tuples

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

def f_even(*args):
    for item in args:
        if item%2 == 0:
            return item

上面的代码仅返回第一个值,因为我猜想返回后它会退出函数。的确,如果我改用print,那就行了

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

谢谢!

3 个答案:

答案 0 :(得分:1)

在python中,您可以使用列表解析来执行此操作。可以使您的代码更具可读性,也可以缩小代码长度。

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

答案 1 :(得分:0)

您可以使用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]

答案 2 :(得分:-1)

完成,谢谢大家!

if (response.equals("Success")){ Intent i = new Intent(CurrentActivity.this,NextActivity.class); startActivity(i); }