Используйте ломтик обозначения для копирования, как этого
array2 = array1[:]
Или вы можете использовать list
функцию
array2 = list(array1)
При назначении одного списка в другой список, новый список не будет создан, но как переменные будут отправлены в тот же список. Это можно подтвердить с помощью этой программы.
array1 = [1, 2, 3, 4]
array2 = array1
print id(array1), id(array2)
Они оба напечатают один и тот же идентификатор. Это означает, что они оба одинаковы (если вы находитесь на фоне C, вы можете думать о них как о указателях (в реализации CPython они действительно являются указателями, другие реализации выбирают для печати уникальных идентификаторов - пожалуйста, отметьте комментарий kojiro)). Узнайте больше о id
here. Когда вы сделаете
array3 = array1[:]
array4 = list(array1)
print id(array1), id(array3), id(array4)
Вы получите разные идентификаторы, так как в этих случаях будут созданы новые списки.
Добро пожаловать в StackOverflow. Не беспокойтесь слишком много о downvoters - некоторые люди думают, что каждый дублированный или начинающий вопрос должен быть опущен. Но, кроме того, что это дубликат, это прекрасный вопрос: ясно, в чем вопрос, и он показывает убедительный код, который наглядно демонстрирует проблему. – kojiro