Курс 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. Библиотека funcy: удобные утилиты
  3. Работа с PosixPath() в Python
  4. Работа с CSV в Python
  5. Работа со случайными элементами
  6. enumerate() в Python для работы с индексами
  7. Оптимизация памяти в Python
  8. Получение локальных переменных в Python
  9. Работа с аргументами командной строки
  10. Нахождение максимального значения и его индекса в списке
  11. Замыкания в Python
  12. Особенности ключей словаря в Python
  13. Генераторы данных
  14. Списки в Python
  15. Преобразование числа в восьмеричную строку
  16. Поиск файлов по шаблону
  17. Подсчет вхождений элементов
  18. Вложенные циклы в Python
  19. Встраивание HTML в Jupyter Notebook
  20. Python Аргументы по умолчанию
  21. Объединение списков с использованием itertools.chain
  22. Преобразование списка в словарь через генератор
  23. Безопасные SQL-запросы в Python 3.11
  24. Flask — веб-фреймворк Python
  25. Вывод с переменной через запятую
  26. Работа с комплексными числами
  27. Порядок и длина множеств в Python
  28. Преобразование генераторов в циклы
  29. Оператор in для Python
  30. Генератор списка в Python
  31. Аннотации типов в Python
  32. Обработка исключений в Python 3
  33. Блок try…finally в Python
  34. Работа с контекстными менеджерами
  35. Управление экспортом элементов
  36. Карта бомбоубежищ в Москве и Питере
  37. Поиск наиболее частого элемента
  38. Импорт модулей в Python 3.12
  39. Установка и использование pyshorteners
  40. Принципы SRP и OCP
  41. Оператор in в Python
  42. Отображение HTML кода в Python
  43. Проблемы с dict в Python
  44. Открытие и редактирование скриптов Python
  45. Циклы в Python

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