Вы можете сделать копию своего списка
>>> x = [1, 2, 3]
>>> y = list(x)
>>> y.append(4)
>>> y
[1, 2, 3, 4]
>>> z = list(x)
>>> z.append(5)
>>> z
[1, 2, 3, 5]
или используйте конкатенацию, которая создаст новый список
>>> x = [1, 2, 3]
>>> y = x + [4]
>>> z = x + [5]
>>> y
[1, 2, 3, 4]
>>> z
[1, 2, 3, 5]
Первый вариант, вероятно, более идиоматичен, но последний в этом случае работает нормально. Некоторые люди также копируют, используя нарезку (x[:]
создает новый список со всеми элементами исходного списка, на который ссылается x
) или модуль copy
. Ничто из этого не ужасно, но я нахожу первое загадочным, а второе - немного глупым.