Курс Python → Создание копии списка в Python

Когда вы присваиваете значение одного списка другой переменной, как в случае y = x , вы не создаете новый список, а просто создаете ссылку на уже существующий список. Это означает, что при изменении списка через переменную y , вы также изменяете исходный список, на который ссылается переменная x . Это происходит потому, что обе переменные указывают на один и тот же объект в памяти.

Другими словами, списки в Python являются изменяемыми объектами, что означает, что их можно изменять после создания. При этом переменная, которая ссылается на список, не хранит сам список, а лишь ссылку на него. Поэтому любые изменения, сделанные через одну переменную, будут отражаться и на другой переменной, указывающей на тот же список.

Чтобы избежать такого поведения и создать копию списка, а не просто ссылку на него, вам необходимо использовать метод copy() или срезы. Например, можно создать копию списка x и присвоить ее переменной y следующим образом: y = x.copy() или y = x[:].


x = [1, 2, 3]
y = x.copy()
y.append(4)
print(x)  # Выведет [1, 2, 3]
print(y)  # Выведет [1, 2, 3, 4]

Таким образом, понимание того, как работают ссылки на изменяемые объекты в Python, поможет вам избежать непредвиденных изменений в ваших данных и создать копии списков при необходимости.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Названия переменных
  2. Инверсия списка/строки в Python
  3. Работа с исключениями в Python
  4. Проверка версии Python
  5. Метод get() в Python
  6. Динамическая типизация в Python
  7. Перехват исключений в Python
  8. Метод clear для коллекций
  9. Метод invert для побитового отрицания
  10. Проверка памяти объекта
  11. Оператор объединения словарей
  12. Декораторы в Python
  13. Форматирование данных с помощью pprint
  14. Метод enumerate() в Python
  15. Оптимизация методов в Python 3.7
  16. Оператор in для Python
  17. globals и locals
  18. Разделение функций на этапы
  19. Расширение информации об ошибке в Python
  20. Оператор «or» в Python
  21. Импорт объектов из модулей
  22. Моржовый оператор в Python 3.8
  23. Оператор морж в Python 3.8
  24. Автоматизация скриптов на AWS Lightsail.
  25. Python: отличительная особенность — отступы
  26. Генераторы и сеты в Python
  27. Настройка нарезки списков
  28. Поиск HTML-элементов с BeautifulSoup
  29. Настройка логгера Logzero
  30. Поиск шаблона в строке
  31. Библиотека schedule: планировщик задач
  32. Функция print() — вывод информации
  33. Оболочка Python
  34. Метод radd для пользовательских чисел
  35. Обмен данными с asyncio.Queue
  36. Распаковка элементов последовательности
  37. Создание спинбокса в tkinter
  38. Итераторы в Python
  39. Лямбда-функции в Python
  40. Декодирование строк в Python
  41. Срезы в Numpy
  42. Создание веб-приложения с Flask
  43. Enum в Python
  44. Очистка данных с Pandas
  45. Пересечение списков с использованием множеств
  46. Изменяемые и неизменяемые объекты

Marketello читают маркетологи из крутых компаний