【问题标题】:How do i "save" a list or how can I avoid that a list gets overwritten? [duplicate]如何“保存”列表或如何避免列表被覆盖? [复制]
【发布时间】:2014-07-05 16:35:51
【问题描述】:

我有这个代码:

def jaja(lista): 
    lista.append(2) 
    return lista 

a=[2,3] 
b=jaja(a) 
print(a,b)

我希望得到 [2,3] [2,3,2],但由于某些奇怪的原因,列表 a 也发生了变化,所以我得到 [2,3,2] [2,3,2]。想法??

【问题讨论】:

标签: python list global-variables


【解决方案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]

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 2021-08-25
    • 2019-05-30
    • 2021-12-18
    • 2019-12-22
    • 2015-03-20
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多