Курс 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. Создание вложенного генератора
  4. Работа с изображениями Pillow
  5. Работа с YAML в Python: PyYAML.
  6. Склеивание строк без циклов
  7. None в Python: использование и особенности
  8. Анонимные функции в Python
  9. Декораторы в Python
  10. Область видимости переменных в Python
  11. Переменная Шредингера
  12. Настройка вывода NumPy
  13. Работа с модулем Calendar
  14. Объединение списков с помощью zip
  15. Лямбда-функции в Python
  16. Замена символов в строке
  17. Проблемы с именами переменных
  18. Необязательные аргументы в Python
  19. Измерение времени выполнения с помощью time
  20. Перезапуск ячейки в Jupyter Notebook с dostoevsky
  21. Логирование с Logzero: ротация файла
  22. Работа с типами данных в Python с помощью pydantic.
  23. Форматирование чисел в Python
  24. Создание OrderedDict
  25. Метод rpow в Python
  26. Вывод символов строки в Python
  27. Python: возвращение нескольких значений
  28. Операции с числами в Python
  29. Разделение строки в Python
  30. Метод __int__ в Python
  31. Управление User-Agent в Python
  32. Модуль xkcd: добавление юмора в Python
  33. inspect в Python: анализ кода
  34. Абстракции словарей и множеств в Python
  35. Функция count() в Python
  36. Отладка кода
  37. Установка и использование Logzero
  38. Асинхронное выполнение задач в Python
  39. Сортировка элементов в Python
  40. Перевод эмодзи и эмотиконов.
  41. Установка random seed в Python
  42. Добавление цвета в консоли
  43. Явный импорт в Python
  44. Enum в Python

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