Курс 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. Множества и frozenset
  3. Применение функции map() с лямбда-функциями
  4. Изменение логики работы с временем
  5. Работа с коллекциями Python
  6. Оператор match в Python
  7. Выход из профиля в Django
  8. Обратное распространение ошибки
  9. Импорт модуля из другого каталога
  10. Методы работы со строками в Python
  11. Преобразование числа в восьмеричную строку
  12. Настройка вывода в Numpy
  13. Каналы Senior: Python, Java, Frontend, SQL, C++
  14. Python reversed() функция
  15. Создание виртуальной среды
  16. Python Метод sleep() из time
  17. Создание задания в Cron
  18. Оболочка Python
  19. Переопределение метода divmod
  20. Блок else в обработке исключений
  21. *args и **kwargs в Python
  22. Проверка условий в Python
  23. Concrete Paths — метод .with_suffix()
  24. ROT13 Шифр Цезаря в Python
  25. Функция print() — вывод информации
  26. Использование функции product
  27. Создание Telegram-бота на Python
  28. Python: цикл for и оператор присваивания
  29. Стать Python-разработчиком
  30. Генерация QR-кодов с библиотекой qrcode
  31. Лямбда-функции в Python
  32. Combobox в Tkinter
  33. Переопределение метода
  34. Кортеж в Python: создание и использование
  35. Проверка типов с помощью isinstance
  36. Операции с числами в Python
  37. Аргументы *args и **kwargs
  38. Печать в одной строке
  39. Разрешение имен в Python
  40. Подсчет вхождений элементов
  41. Оператор == в Python
  42. Генераторы и сеты в Python
  43. GitHub в Telegram: подписка на уведомления
  44. Удаление элементов по срезу
  45. Сортировка списка по индексам
  46. Автоматизация с Python
  47. Метод is_absolute() для PurePath

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