0
我有這樣的代碼:如何「保存」列表或如何避免列表被覆蓋?
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]。想法?
我有這樣的代碼:如何「保存」列表或如何避免列表被覆蓋?
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]。想法?
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]
https://docs.python.org/2/faq/programming.html#how-do-i-copy-an-對象中的Python – devnull