У меня есть список, и я хочу перевернуть в моем списке и изменить каждый элемент с предыдущим элементом до первого элемента:
lst = [[1,2], [1,3], [1,4], [2,4]]
for i in range(len(lst) - 1, 0, -1):
lst[i] = lst[i-1]
lst[0][0] += 1
После этого я ожидаю следующий результат:
>>> lst
[[2, 2], [1, 2], [1, 3], [1, 4]]
Но результат таков:
>>> lst
[[2, 2], [2, 2], [1, 3], [1, 4]]
Я слышал что-то о ссылках между двумя списками, когда вы назначаете их друг другу, но вопрос в том, почему этот результат не произойдет для других элементы, например:
lst = [[1,2], [1,3], [1,4], [2,4]]
for i in range(len(lst) - 1, 0, -1):
lst[i] = lst[i-1]
lst[2][0] += 1
Это результат:
>>> lst
[[1, 2], [1, 2], [2, 3], [1, 4]]
Что я ожидаю:
>>> lst
[[1, 2], [1, 2], [2, 3], [2, 4]]
Почему между * 1019 нет ссылок * и lst[3]
?