I was experimenting with lists in python and found the following confusing.
>>> 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]
First, I multiplied like this: A = [a]*3 and changed an element of a. A changed because it contained 3 references of a. Then, I multiplied like this: A = a*3 and changed the same element of a. Now, why did A not change, assuming that it contained 3 references of a, too?