Python列表更新自身

sgp*_*sgp 3 python list python-2.7

那么这是一个基本问题,但在这里:

请考虑以下代码:

listA = ['a','b','c']
listB = listA
listB.pop(0)
print listB
print listA
Run Code Online (Sandbox Code Playgroud)

输出如下:

['b','c']
['b','c']
Run Code Online (Sandbox Code Playgroud)

但是,输出不应该是:

['b','c']
['a','b','c']
Run Code Online (Sandbox Code Playgroud)

到底发生了什么?我怎么能得到预期的输出?提前致谢 :)

tim*_*geb 5

变量listB只不过是对它的引用listA.如果你想要副本,listA你可以发出

listB = listA[:] 
Run Code Online (Sandbox Code Playgroud)

对于浅拷贝或

import copy
listB = copy.deepcopy(listA)
Run Code Online (Sandbox Code Playgroud)

用于深层复制.是一个很好的阅读主题.