Python列表自我更新

3

这是一个比较基础的问题,但是我会尽力解答:

考虑以下代码:

listA = ['a','b','c']
listB = listA
listB.pop(0)
print listB
print listA

输出结果如下:
['b','c']
['b','c']

然而,输出应该是什么呢?
['b','c']
['a','b','c']

这里到底发生了什么?我怎样才能获得预期的输出结果?提前感谢你的帮助 :)

тЈЉућЪуџёТЃЁтєхТў»listAтњїlistBТў»тљїСИђСИфтѕЌУАеуџёСИцСИфтљЇуД░сђѓ - kindall
1个回答

5
变量listB只是对listA的引用。如果你想要listA的副本,可以执行以下操作:
listB = listA[:] 

进行浅复制或

import copy
listB = copy.deepcopy(listA)

关于深度复制这个话题,这里有一篇不错的文章。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接