Курс 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. Замена символов в Python
  2. Множественные конструкторы в Python
  3. Подсчет элементов с помощью Counter из collections
  4. Вывод букв строки в Python
  5. Работа с срезами в Numpy
  6. Удаление файлов в Python
  7. Замена атрибута в именованном кортеже
  8. Запрос пароля с помощью getpass
  9. Работа с модулем cmath
  10. Добавление кнопки в tkinter
  11. Библиотека sh: удобные команды терминала
  12. IPython и Jupyter Notebook: руководство
  13. Декоратор total_ordering для сравнения объектов
  14. Работа с кортежами в Python
  15. Оптимизация памяти с помощью __slots__
  16. Форматирование данных с помощью pprint
  17. Запуск внешних программ с subprocess
  18. Обновление ключей в Python
  19. Оператор Walrus в Python 3.8
  20. Инверсия списка и строки в Python
  21. Поиск наиболее частого элемента в списке
  22. Упрощение условных выражений с тернарным оператором
  23. Декораторы классов
  24. Добавление элемента к кортежу
  25. Таймер обратного отсчета
  26. Замена текста с помощью sub
  27. Очистка данных с помощью pandas
  28. Оператор деления для класса Rational
  29. Метод __iand__ для пользовательских классов
  30. Цикл for в Python
  31. Метод __irshift__ для побитового сдвига вправо
  32. Проверка типа объекта в Python
  33. Работа с аргументами командной строки
  34. Установка и использование библиотеки google
  35. Функция rsplit() в Python
  36. Работа с буфером обмена на Python
  37. Сравнение строк в Python
  38. Создание списков в Python
  39. Работа с Enum в Python3.
  40. Преобразование типов данных в set comprehension
  41. Просмотр внешних файлов в %pycat
  42. Проблемы с dict в Python
  43. Путь к интерпретатору Python
  44. Метод invert для побитового отрицания
  45. Генераторы в Python
  46. Удаление символов новой строки в Python.
  47. Метод get для словаря

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