在以下程序中,所有等于b
的列表都会弹出。
a = [2,4,3,2,4,7,8]
c = a
b = c
b.pop(2)
print a
print b
print c
根据我的说法,我们只应弹出b
,但a
和c
也会被弹出。为什么呢?
答案 0 :(得分:1)
当您从a
到c
分配列表时,您不会创建列表的副本,只是对现有值的引用。在您运行pop
所有a
时,b
和c
只是同一列表的不同名称。您可以通过比较a is c
来验证这一点。
答案 1 :(得分:0)
如果您希望获得a到c和C到b的副本但不是参考:
a = [2,4,3,2,4,7,8]
# copy a to c
c = a[:]
b = c[:]
b.pop(2)
print a
print b
print c