我知道给定这段代码
a = [1,2,3]
b = [4,5,6]
c = a
然后通过这样做
a[0] = 0
我将更改 a 和 c 的第一个位置。有人可以解释为什么当我这样做时这不适用:
a = b
IE。为什么c不等于b?
我知道给定这段代码
a = [1,2,3]
b = [4,5,6]
c = a
然后通过这样做
a[0] = 0
我将更改 a 和 c 的第一个位置。有人可以解释为什么当我这样做时这不适用:
a = b
IE。为什么c不等于b?
a = [1,2,3]
b = [4,5,6]
# a ────────> [1,2,3]
# b ────────> [4,5,6]
c = a # Changing 'c' to point at the list that 'a' points at
# c ─────┐
# a ─────┴──> [1,2,3]
# b ────────> [4,5,6]
a = b # Changing 'a' to point at the list that 'b' points at
# c ─────┐
# a ──┐ └──> [1,2,3]
# b ──┴─────> [4,5,6]
因为python从代码的开头到最后一行解释了这行代码。因此,在将 a 分配给 c 之后,您已将 b 分配给 a。在重新分配 c 之前,c 的值不会改变。