Я пытаюсь изменить список, и так как мои модификации становились немного сложнее, и мой список большой, я взял часть своего списка, используя следующий код
tempList=origList[0:10]
for item in tempList:
item[-1].insert(0 , item[1])
del item[1]
Я думал, что все изменения в списке будут влиять на объект tempList, а не на объекты origList.
Что ж, как только я правильно понял свой код и запустил его в своем первоначальном списке, первые десять элементов (с индексами 0-9) были затронуты моей манипуляцией при тестировании кода, напечатанного выше.
Итак, я гуглил это и нашел ссылки, в которых говорилось, что взятие фрагмента копирует список и создает новый. Я также нашел код, который помог мне найти идентификатор элементов, поэтому я создал свой origList с нуля, получил идентификаторы первых десяти элементов. Я снова разрезал список и обнаружил, что идентификаторы из фрагментов совпадают с идентификаторами из первых десяти элементов origList.
Я нашел больше заметок, в которых предлагался более питонный способ копирования списка:
tempList=list(origList([0:10])
Я попробовал это, и я все еще нахожу, что идентификаторы из tempList совпадают с идентификаторами из origList.
Пожалуйста, не предлагайте более эффективные способы кодирования - я сам пойму, как это сделать, в списке. Понимание самостоятельно после того, как я пойму, как работает копирование
Основываясь на ответе Кая, правильный метод:
import copy
tempList=copy.deepcopy(origList[0:10])
id(origList[0])
>>>>42980096
id(tempList[0])
>>>>42714136
Работает как шарм