Курс 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. Цикл for в Python
  3. Вычисление логарифмов в Python
  4. Модуль Antigravity в Python 3
  5. Пространство имен в Python
  6. Профилирование кода на Python
  7. Атрибуты объекта в Python
  8. Оператор обр. импликации
  9. Простой калькулятор Python
  10. Генераторы в Python
  11. Использование функции enumerate()
  12. Работа с getopt
  13. Проверка элемента в множестве.
  14. Инверсия списков и строк в Python
  15. Создание треугольника Паскаля
  16. Метод rlshift для битового сдвига
  17. Обработка исключений в Python
  18. Метод __float__ в Python
  19. Логирование с Loguru
  20. Использование подчеркивания в REPL
  21. Работа с файлами и директориями в Python.
  22. Передача неизвестных аргументов в Python.
  23. Методы classmethod и staticmethod
  24. Функция zip() в Python
  25. Параллельные вычисления в Python
  26. Закрытие файла в Python
  27. Декораторы классов
  28. Разница между датами
  29. Экранирование символов в Python
  30. Отладка в Python
  31. Перезагрузка оператора в Python
  32. Группировка элементов Python
  33. Добавление вложенных списков
  34. TypedDict для kwargs в Python 3.12
  35. Управление контекстом выполнения
  36. Функция reduce() в Python
  37. Эффективная конкатенация строк в Python
  38. Многострочные комментарии в Python
  39. SciPy: широкий функционал для математических операций
  40. Вычисление фазы комплексного числа
  41. Объединение словарей в Python
  42. Константы в модуле cmath
  43. Работа с NumPy.linalg
  44. Манипуляция формой массива в Numpy
  45. Решатель судоку на Python с pygame
  46. Оператор break в Python
  47. Измерение времени выполнения кода в Python

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