举例:
a = [1, 2, 3, 4, 5]
b = a
b[2] = 0 # 修改了B,但没有修改A
print(a)
print(b)
第3行代码:你以为的是仅仅修改了B,但没有修改A,A还应该是是最初的[1,2,3,4,5],但运行结果却是:
[1, 2, 0, 4, 5]
[1, 2, 0, 4, 5]
A和B同时发生了改变
这也说明Python的所有操作都是通过指针来进行,这样也就可以解释为什么A和B同时变化了,因为它们本 质上都是指针而已,只是指向了同一个地址,并没有为b分配内存空间。
如果想要为b分配空间,并单独改变B该怎么办呢
a = [1, 2, 3, 4, 5]
b = [0]*5
b[0] = a[0]
b[1] = a[1]
b[2] = a[2]
b[3] = a[3]
b[4] = a[4]
b[2] = 0 # 单独改变B
print(a)
print(b)
运行结果:
[1, 2, 3, 4, 5]
[1, 2, 0, 4, 5]
OK了