Курс 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. Преобразование чисел в восьмеричную строку
  3. Принципы программирования
  4. Работа с YAML в Python: PyYAML.
  5. Управление доступом к модулю
  6. Установка Python3.7 и PIP
  7. Метод __float__ в Python
  8. Операторы присваивания в Python
  9. Переворот последовательности
  10. Метод classmethod
  11. Инициализация структур данных
  12. Транспонирование матрицы в Python
  13. Декоратор проверки активности
  14. Ключевое слово global в Python
  15. Шаблоны и наследование в Flask
  16. Определение функций с необязательными аргументами
  17. Реализация операции -= для пользовательского класса
  18. Очистка данных с Pandas
  19. Анализ текста на русском языке с помощью Pymystem3
  20. Bootle — простой веб-фреймворк
  21. Объединение Python и Shell
  22. Оператор space-invader
  23. Работа с датами в Python
  24. Управление памятью в Python
  25. Дефолтные параметры в Python
  26. Объединение списков в Python
  27. Оптимизация памяти с __slots__
  28. Установка и использование Python-dateutil
  29. Работа с getopt
  30. Работа с файлами в Python
  31. Просмотр внешних файлов в %pycat
  32. Метод pos в Python
  33. Поиск подстроки в строке
  34. Анонимные функции в Python
  35. Преобразование типов данных в set comprehension
  36. Метод index() в Python
  37. Утечки переменных цикла в Python 3.x
  38. Структура данных deque в Python
  39. Чтение бинарного файла в Python.
  40. Работа с модулем bisect
  41. Сортировка и обратный порядок
  42. PrettyTable: создание таблицы
  43. Получение текущего времени в Python
  44. Вычисление разности множеств в Python
  45. Настройка нарезки списков
  46. Преобразование многоуровневого словаря
  47. Создание тестовых данных с Faker

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