在运行下面的函数之前,l1是一个空列表,但为什么运行该函数后它是[1,2,3]?
def copylist(lsource, ldest):
for e in lsource:
ldest.append(e)
print 'ldest =',ldest
l1 = []
l2 = [1, 2, 3]
copylist(l2, l1)
print l1 # displays [1, 2, 3]
print l2 # displays [1, 2, 3]
答案 0 :(得分:1)
您似乎期望列表的处理方式与传统值一样,因为它可能是其他语言。 Python参数更像是引用传递,并且因为列表是可变的,所以它完全按照您的要求执行。
你越熟悉Python就会越明显,自然,甚至更方便。
答案 1 :(得分:0)
python通过引用传递对象。这意味着您将元素添加到您传递的实际对象中。
答案 2 :(得分:0)
对于lsource的每个元素,如果它存在于ldest中,那么它将被附加到ldest。因此,l2的所有元素都被复制到(未移动到)l1。
答案 3 :(得分:0)
什么是ldest
?这是你传入的任何内容。在这种情况下,你传递了l1
。 ldest
和l1
是相同的列表。因此,您使用什么名称来引用该对象并不重要。