Python:为什么 "return"不会在简单的 for 循环中打印出所有列表元素而 "print"会打印出来?

标签 python list return

在我将一个列表附加到另一个列表后,我试图用 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/

相关文章:

python - Python 字典中的 TAB 换行符

python - 通过 Python 打印日历。代码不起作用=/

python - Python 中的属性相互匹配

java - 如何从 Android 调用 javascript?

c++ - 以下代码是否返回对堆栈对象的引用或者它是否有效?

python - 如何在 wxPython 的 Notebook 页面中添加和删除控件?

python - unittest - 比较列表而不考虑顺序

python - 列表的切片模式

objective-c - 带有 NS_REQUIRES_NIL_TERMINATION 的多参数列表

c++ - 返回 "large"类私有(private)成员的最佳做法是什么?