使用 return() 方法时 args() returning 只有一个值的原因是什么?
What is the reason behind args() returning only one value when return() method is used?
我使用的代码如下:
def myfunc(*args):
对于我在(args):
如果我 % 2 == 0:
return我
myfunc(1,2,3,4,5,6)
当前输出为:
输出:2
期望:
我想 return 所有偶数值而不是一个值。
如评论中所建议,您不能 return 多个值。所以你可以把你所有的价值添加到一个列表中并使用它。
def myfunc(*args):
list1 = list()
for i in (args):
if i % 2 == 0:
list1.append(i)
return list1
myfunc(1,2,3,4,5,6)
或者,您可以使用生成器函数逐个获取值。
def myfunc(*args):
for i in (args):
if i % 2 == 0:
yield i
something = myfunc(1,2,3,4,5,6)
您是 return 满足 if condition
的第一个值。您需要将所有值存储在 list
中,然后在 for loop
完成后存储在 return 中。
def func(*args):
temp = []
for i in (args):
if i%2==0:
temp.append(i)
return temp
print(func(1,2,3,4,5,6))
输出:
[2,4,6]
Why for args() returning only one value when using return()?
-- args 没有 return 任何东西。你只是通过它把你的输入传递给函数。
-- 您还在 for 循环中使用了 return,这会导致函数 return 放弃循环。
试试下面的代码:
def myfunc(*args):
return [x for x in args if x%2 == 0]
print myfunc(1,2,3,4,5,6)
输出:
[2, 4, 6]
您的函数在执行第一个 return
表达式时停止。另一种选择是:
def myfunc(*args):
result = []
for i in (args):
if i % 2 == 0:
result.append(i)
return result
myfunc(1,2,3,4,5,6)
我使用的代码如下:
def myfunc(*args): 对于我在(args): 如果我 % 2 == 0: return我
myfunc(1,2,3,4,5,6)
当前输出为:
输出:2
期望: 我想 return 所有偶数值而不是一个值。
如评论中所建议,您不能 return 多个值。所以你可以把你所有的价值添加到一个列表中并使用它。
def myfunc(*args):
list1 = list()
for i in (args):
if i % 2 == 0:
list1.append(i)
return list1
myfunc(1,2,3,4,5,6)
或者,您可以使用生成器函数逐个获取值。
def myfunc(*args):
for i in (args):
if i % 2 == 0:
yield i
something = myfunc(1,2,3,4,5,6)
您是 return 满足 if condition
的第一个值。您需要将所有值存储在 list
中,然后在 for loop
完成后存储在 return 中。
def func(*args):
temp = []
for i in (args):
if i%2==0:
temp.append(i)
return temp
print(func(1,2,3,4,5,6))
输出:
[2,4,6]
Why for args() returning only one value when using return()?
-- args 没有 return 任何东西。你只是通过它把你的输入传递给函数。 -- 您还在 for 循环中使用了 return,这会导致函数 return 放弃循环。
试试下面的代码:
def myfunc(*args):
return [x for x in args if x%2 == 0]
print myfunc(1,2,3,4,5,6)
输出:
[2, 4, 6]
您的函数在执行第一个 return
表达式时停止。另一种选择是:
def myfunc(*args):
result = []
for i in (args):
if i % 2 == 0:
result.append(i)
return result
myfunc(1,2,3,4,5,6)