首页 > 解决方案 > 如何在函数中返回完整的for循环

问题描述

我试图For loop在函数中运行 a 但是当我调用函数时只返回第一个值。

我试过用 aprint而不是a 来结束循环return,它得到了正确的结果(它打印循环中的每个值)但意味着 anone被添加到答案中,因为现在有一个双重打印。

请注意:在这些示例中,可以直接打印“值”,但我希望能够通过 for 循环运行,以便稍后增加复杂性。

以结尾的函数return只打印出“For循环”的第一个值:

def thing():  
   value = ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 )
   for x in value:
    return x

print(thing())
# 1 

此函数使用print并给出正确的结果,除了none由于双重打印而添加的结果。

def thing1():
   value = ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 )
   for x in value:
     print(x)

print(thing1())

>>>  OutPut:
1
2
3
4
5
6
7
8
9
10
None

如何在删除“无”的同时获得第二个结果(所有值的完整打印循环)?

标签: pythonfunctionfor-loopreturnnonetype

解决方案


运行后return,函数停止评估。如果您想在 for 循环中返回所有内容,请返回其输出列表:

ret_vals = []
for x in value:
    ret_vals.append(x)

return(ret_vals)    

您可以将它们打印在您指定的新行上,如下所示:

out = func()
for x in out:
    print(x)

推荐阅读