Курс 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. Установка и использование howdoi
  3. Работа с эмодзи в Python
  4. Объединение списков с помощью zip
  5. Открытие, чтение и закрытие файла
  6. Распаковка элементов последовательности
  7. Удаление falsy-значений из списка с помощью filter
  8. Декоратор @override
  9. Роль ключевого слова self
  10. Многоточие в Python
  11. Работа с пользовательским вводом
  12. Навыки Python: строки, типы данных
  13. Оптимизация памяти с __slots__
  14. Работа с кортежами в Python
  15. Фильтрация элементов с помощью islice
  16. Итерации в Python
  17. Поиск частых элементов в списке
  18. Улучшение читаемости кода в Python
  19. Группировка элементов в словарь
  20. Декораторы в Python
  21. Модуль itertools: эффективная работа с итераторами
  22. Делегирование в Python
  23. Возведение в квадрат с помощью itertools
  24. Комментарии в Python
  25. Функции min(), max(), sum()
  26. Функция count() в Python
  27. Операции с матрицами в Python
  28. Работа с файлами в Python
  29. Обработка исключений в Python 3
  30. Определение размера папок в Python
  31. Поиск наиболее частого элемента
  32. Библиотека itertools: объединение списков
  33. Создание таблиц в Python с PrettyTable
  34. Защита данных в Python
  35. Работа с временем в Python
  36. Переопределение метода __rshift__
  37. PUT запрос для обновления данных
  38. Протокол управления контекстом
  39. Работа с буфером обмена на Python
  40. Метод remove() для удаления элемента из списка
  41. Defaultdict в Python
  42. Удаление ресурса в Python
  43. Объединение словарей в Python
  44. Работа с deque в Python
  45. Библиотека funcy: удобные утилиты

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