我有这段代码:
def jaja(lista):
lista.append(2)
return lista
a=[2,3]
b=jaja(a)
print(a,b)
我希望得到[2,3] [2,3,2],但是由于一些奇怪的原因,列表也会改变,所以我得到[2,3,2] [2,3,2]。想法?
答案 0 :(得分:1)
a
更改,因为列表通过引用传递到您的函数中,因此当您附加到函数中时,您将附加到原始列表中。如果您不想更改原始列表,请复制一份:
def jaja(lista):
lista = lista[:] # a simple way to copy a list in Python
lista.append(2)
return lista
a=[2,3]
b=jaja(a)
print(a,b) # prints [2,3] [2,3,2]