Курс 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. Flask: создание веб-приложений
  3. JMESPath в Python
  4. Генерация случайных чисел в Python
  5. enumerate() в Python для работы с индексами
  6. Операции с массивами в NumPy
  7. Конструктор в Python
  8. Копирование списков в Python
  9. Искажение имен в Python
  10. Асинхронный код в Python
  11. Явный импорт переменных
  12. Область видимости переменных
  13. Разбиение текста в Python
  14. Python Тесты и Гайды
  15. Ввод нескольких значений
  16. Передача словаря через **kwargs
  17. Оптимизация поиска в словарях
  18. Модуль Antigravity в Python 3
  19. Атрибуты массивов в Numpy
  20. Операторы Splat и splatty-splat
  21. Преобразование символов в нижний регистр
  22. Работа с библиотекой requests
  23. Тестирование с unittest
  24. Очистка данных с Pandas
  25. Объединение словарей в Python 3.5+
  26. Ускорение кода с помощью векторизации
  27. Методы в Python
  28. Итерация по коллекции в Python
  29. Метод rmatmul для пользовательских матриц
  30. Установка библиотек в Python
  31. Работа с итераторами в Python
  32. Функция sleep() в Python
  33. Установка и использование TensorFlow
  34. Модуль Operator в Python
  35. Работа с CSV файлами
  36. Функции классификации комплексных чисел
  37. F-строки в Python
  38. Удаление пробелов методом translate()
  39. Регулярные выражения: метод match
  40. 9 уловок для чистого кода
  41. Получение ID процесса
  42. Получение размера объекта с sys.getsizeof()
  43. Создание словарей с defaultdict
  44. Проверка подстроки в строке
  45. Метод invert для побитового отрицания
  46. Метод rmatmul для обратного матричного умножения

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