Курс 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. Замена текста с помощью sub
  3. Шаблоны Flask: условия и циклы
  4. Работа с базами данных SQLite
  5. Отрицательные индексы списков
  6. Сокращение ссылок с pyshorteners
  7. Распаковка элементов последовательности
  8. Аннотации типов в Python
  9. Python Метод Union Множеств
  10. Запрос пароля с помощью getpass
  11. Оператор match в Python
  12. Применение функции к списку
  13. Работа с процессами в Python
  14. Модуль inspect
  15. Оператор zip в Python
  16. Экспорт данных в файл.
  17. Модуль Antigravity в Python 3
  18. 9 уловок для чистого кода
  19. Сравнение def и lambda функций в Python
  20. Отправка HTTP-запросов с User-Agent
  21. Цикл while в Python
  22. Получение срезов итераторов
  23. Добавление элемента в список.
  24. Избегайте изменяемых аргументов
  25. Удаление файлов в Python
  26. Функции map, filter, reduce
  27. Классы данных в Python
  28. Метод matmul для умножения матриц
  29. Работа с итераторами в Python
  30. Сравнение строк в Python
  31. Метод __ixor__ для побитового исключающего ИЛИ
  32. Выражения-генераторы в Python
  33. Работа с файлами в Python
  34. Сериализация данных в JSON с помощью json.dumps
  35. Определение имен функций
  36. Сумма элементов списка
  37. Класс-оболочка для словарей
  38. Множества и frozenset
  39. Ноутбуки AMD Ryzen ™ 4000: мощность и эффективность
  40. Очистка списка от False, None, 0, «»
  41. Функция zip() — объединение последовательностей
  42. Подписка на Kaspersky Team
  43. Логирование в Python
  44. Работа с исключениями в Python
  45. Генераторы в Python
  46. Работа с zip()
  47. Модуль antigravity: генерация координат

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