我试图将* args与python中的for循环一起使用,但是我看不到如何返回传递给该函数的所有值,该函数应该返回所有偶数
def f_even(*args):
for item in args:
if item%2 == 0:
return item
上面的代码仅返回第一个值,因为我猜想返回后它会退出函数。的确,如果我改用print,那就行了
当我将(1,2,3,4,5)传递给函数时,我试图找到一种返回具有所有偶数的元组的方法
谢谢!
答案 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);
}