Python列表分配错误

Zer*_*ero 1 python string list

我有一个存储的字符串列表 wk

我运行以下代码.

n_wk=wk
for i in range(10):
    if some condition:
       n_wk[i]='new'
Run Code Online (Sandbox Code Playgroud)

我想保留这些wk价值观.但是,wk它也随着变化而变化n_wk.任何人都可以指出这个错误吗?

Mar*_*ers 5

创建副本wk:

n_wk = list(wk)
Run Code Online (Sandbox Code Playgroud)

或使用:

n_wk = wk[:]
Run Code Online (Sandbox Code Playgroud)

两者都将索引复制到新列表.

  • 因为作业并不总是复制.只复制基本类型,列表,字典和其他对象通过引用复制,因此它们指向同一个对象.以上内容也仅适用于列表和类似结构,请考虑更复杂的对象:http://docs.python.org/2/library/copy.html (2认同)