问题
Why couldn't the first element but the whole column be updated below?
>>> x=2*[2*[1]]
>>> x
[[1, 1], [1, 1]]
>>> x[0][0]=2
>>> x
[[2, 1], [2, 1]]
回答1:
Even tho this is a clear duplicate but use range
:
>>> x=[[1 for i in range(2)] for x in range(2)]
>>> x
[[1, 1], [1, 1]]
>>> x[0][0]=2
>>> x
[[2, 1], [1, 1]]
>>>
At least still able to do:
>>> x=[[1]*2 for x in range(2)]
>>> x[0][0]=2
>>> x
[[2, 1], [1, 1]]
>>>
来源:https://stackoverflow.com/questions/52175690/unexpected-update-result-on-the-quickly-nested-list-in-python