У меня возникли проблемы с копированием списков в одной из моих программ, которые я пытаюсь сделать в Python.Список изменен даже при использовании deepcopy
Так в основном вот линия у меня возникают проблемы с:
print(a)
print(b)
a[0]=deepcopy(b[0][-1][0][:1])
print(b)
(Отпечатки здесь только для целей отладки, так что я мог видеть, как эти списки были изменены) и вот что печать показать:
[[1, 2, 3, 5], [0, 5, 9, 10]]
[[[[1, 2, 3, 5], [0, 5, 9, 10]]]]
[[[[1], [0, 5, 9, 10]]]]
Так что вопрос в том, что «б» был фактически изменен, хотя я использовал «DeepCopy» из него, что не имеет абсолютно никакого смысла для меня. И это происходит только внутри моего кода, потому что если вы пытаетесь запустить те же строки кодов (назначив «a» и «b» тому, что показано вышеприведенными отпечатками), на самом деле он не будет изменять «b ». Итак, мой вопрос заключается в том, что может привести к изменению списка при «глубокой печати»? Я не поместил всю программу, потому что она длинная, и все имена и комментарии в ней находятся на французском языке, поэтому я просто прошу общий ответ, который может помочь мне понять, почему это произошло. Надеюсь, мои объяснения были достаточно ясными. Скажите, пожалуйста, если они не были, и я попытаюсь объяснить лучше =). Спасибо.
О да, я получил это сейчас! Ну, единственное исправление, о котором я могу думать, - это «b = deepcopy (b)», чтобы сделать b полностью независимым. Спасибо за помощь. – Tekeur