Я много использую python, и сегодня меня удивляет простой вложенный список.python Как изменить элемент во вложенном списке
Как изменить значение элемента в моем списке?
>>> l=[[0,0]]*10
>>> l
[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
>>> l[0]
[0, 0]
>>> l[0][0]
0
>>> l[0][0]=1 #here comes the question
>>> l
[[1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0]]
>>>
Я бы ожидать, как конечный результат
l=[[1,0],[0,0],[0,0]...]
Почему это не добавляет? (Я хотел бы получить теоретическое объяснение) Как я могу получить желаемый результат?
Спасибо.
EDIT: В запуске списка в другой, как я получить желаемый результат
>> l=[[0,0],[0,0]]
>>> l
[[0, 0], [0, 0]]
>>> l[0][0]=1
>>> l
[[1, 0], [0, 0]]
>>>
, но я до сих пор удивляюсь, почему первая версия не работает и как я могу инициализировать список много элементов ?
Арг, ты избил меня! Я полагаю, что мы должны найти одну из тысяч обманов этого. –
Я практикую скорость ввода текста. закрытое голосование было отлито – mhlester
, поэтому мой предыдущий код был равен s = [0,0] l = [s * 10], и поэтому у меня всегда один и тот же указатель? – Donbeo