我知道鉴于此代码
a = [1,2,3]
b = [4,5,6]
c = a
然后通过这样做
a[0] = 0
我会改变 a 和 c 的第一个位置。 有人可以解释为什么当我这样做时这不适用:
a = b
即为什么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 的值不会更改。