在我将一个列表附加到另一个列表后,我试图用 Python 打印列表中的所有元素。问题是它只在我使用 PRINT 或 RETURN 时打印出每个元素。 如果我使用 print,它会在列表末尾带有“None”的列中打印出整个列表,但 return 将只打印出第一项。为什么?
这是代码:
def union(a,b):
a.append(b)
for item in a:
return item
a=[1,2,3,4]
b=[4,5,6]
print union(a,b)
它返回:
1
如果我用
def union(a,b):
a.append(b)
for item in a:
print item
a=[1,2,3,4]
b=[4,5,6]
print union(a,b)
相反,我得到:
1
2
3
4
[4, 5, 6]
None
(甚至不在一行中)。
请注意,我发现了更多关于这个问题的结果(like this one),但它们并不完全相同,而且它们对我来说相当复杂,我只是开始学习编程,谢谢!
最佳答案
当您使用return
语句时,函数结束。您只返回第一个值,循环不会继续,您也不能以这种方式一个接一个地返回元素。
print
只是将该值写入您的终端,并不结束函数。循环继续。
构建一个列表,然后返回那个:
def union(a,b):
a.append(b)
result = []
for item in a:
result.append(a)
return result
或者只返回一个连接:
def union(a, b):
return a + b
关于Python:为什么 "return"不会在简单的 for 循环中打印出所有列表元素而 "print"会打印出来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17897589/