Курс 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. Функция eval() в Python
  4. Функция zip() в Python
  5. Преобразование строк в числа с плавающей запятой
  6. Сортировка в Python
  7. Умножение строк и списков
  8. Оператор in для Python
  9. Генерация случайных чисел в Python
  10. Лямбда-функции в Python
  11. Оператор деления для класса Rational
  12. Отступы в Python
  13. Удаление специальных символов с помощью re.sub
  14. Работа со строками в Python
  15. Объединение кортежей в Python
  16. Работа с collections в Python
  17. Создание итерируемых объектов
  18. Особенности ключей словаря в Python
  19. Python: цикл for и оператор присваивания
  20. Создание namedtuple из словаря
  21. Работа с каталогами в Python
  22. Класс Counter() для подсчета элементов
  23. Удаление специальных символов
  24. Глобальные переменные в Python
  25. Функциональное программирование в Python
  26. Методы работы со списками
  27. Измерение времени выполнения в Python
  28. Логирование с Logzero
  29. Проверка окончания строки с помощью str.endswith()
  30. Метод repr() в Python
  31. Установка и использование Virtualenv
  32. Удаление символа из строки
  33. Замена переменных в Python
  34. Работа со строками в Python
  35. Модуль functools в Python
  36. None в Python: использование и особенности
  37. Оптимизация сравнения в Python
  38. Операции с комплексными числами
  39. Функция enumerate() в Python
  40. Мощь вложенных функций в Python
  41. Работа с базами данных SQLite
  42. Работа с переменными в Python
  43. Комментарии в Python.

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