Когда вы делаете это:
all_info = [[1,2,3], [2,3,4], [5,6,7]]
all_info_mod = all_info[1:]
Вы выполняете нарезку на all_info
, чтобы создать новый список all_info_mod
.
Проблема в том, что элементы all_info
являются (ссылками на) списками, поэтому all_info_mod
будет содержать копию ссылок на списки. Ссылки копируются, поэтому в конце оба списка содержат ссылки на одни и те же списки.
Это объясняет, почему при изменении списков, на которые ссылаются элементы all_info_mod
, вы также изменяете списки, на которые ссылаются элементы all_info
.
Обратите внимание, что если вы непосредственно измените элемент all_info_mod
путем присвоения, т. Е. Если вы замените ссылку на список другой, то all_info
не изменится:
all_info_mod[1] = [9,9,9]
print(all_info) # [[1, 2, 3], [2, 3, 4], [5, 6, 7]]
print(all_info_mod) # [[2, 3, 4], [9, 9, 9]]
Если вы действительно хотите дублировать данные в другом списке, вы должны использовать метод copy.deepcopy () , как показано ниже:
import copy
all_info = ...
all_info_mod = copy.deepcopy(all_info[1:])