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