3

我知道给定这段代码

a = [1,2,3]
b = [4,5,6]
c = a

然后通过这样做

a[0] = 0

我将更改 a 和 c 的第一个位置。有人可以解释为什么当我这样做时这不适用:

a = b

IE。为什么c不等于b?

4

2 回答 2

4
 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]
于 2020-06-03T10:43:26.327 回答
0

因为python从代码的开头到最后一行解释了这行代码。因此,在将 a 分配给 c 之后,您已将 b 分配给 a。在重新分配 c 之前,c 的值不会改变。

于 2020-06-03T10:42:10.240 回答