我在python中试验列表,发现以下令人困惑。
>>> a = [1, 2, 3, 4]
>>> A = [a]*3
>>> A
[[1, 2, 3, 4], [1, 2, 3, 4], [1, 2, 3, 4]]
>>> a[2] = 45
>>>
>>> A
[[1, 2, 45, 4], [1, 2, 45, 4], [1, 2, 45, 4]]
>>> A = a * 3
>>> A
[1, 2, 45, 4, 1, 2, 45, 4, 1, 2, 45, 4]
>>> a[2] = 3
>>> A
[1, 2, 45, 4, 1, 2, 45, 4, 1, 2, 45, 4]
首先,我这样乘以:A = [a]*3
并更改了a
的元素。 A
已更改,因为它包含3个a
引用。然后,我成倍增加:A = a*3
并更改a
的相同元素。现在,为什么A
没有改变,假设它包含3个a
的引用?