如何在函数中返回完整的for Loop

时间:2019-05-12 19:58:54

标签: python function for-loop return nonetype

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

我尝试用print而不是return结束循环,这样可以得到正确的结果(它将打印循环中的每个值),但是意味着添加了none答案,因为现在有重复打印了。

请注意:在这些示例中,可以直接打印“值”,但是我希望能够通过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

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

1 个答案:

答案 0 :(得分:0)

运行return之后,该函数停止求值。如果要在for循环中返回所有内容,请返回其输出列表:

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

return(ret_vals)    

您可以像指定的那样在新行上打印它们:

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