l = ["1","2"]
e = "3"
def add(e,s):
s = s + [e]
return s
add(e,l)
print(l)
为什么不打印['1','2','3']
?
答案 0 :(得分:3)
s + [e]
是一个新列表。您可以将此值分配给函数s
中的变量add
。
此变量与外部代码中的变量l
不同。它首先引用同一个对象,但是当您将另一个对象分配给s
时,可以更改它。
您可能想要做的是更改s
引用的对象的内容,而不是让s
引用不同的对象:
s.append(e)
这意味着s
和l
将继续引用同一个对象,并修改该对象。