Курс Python → Копирование словарей и списков в Python

При работе с Python важно понимать, что присваивание переменной не создает ее копию, а лишь создает ссылку на объект в памяти. Поэтому при попытке скопировать словарь или список с помощью оператора присваивания, мы получаем не копию, а ссылку на оригинальный объект. Это означает, что любые изменения, внесенные в копию, будут отражаться и на оригинале.

Для создания копии словаря или списка в Python лучше использовать методы copy() или deepcopy() из модуля copy. Метод copy() создает поверхностную копию, то есть копируются только ссылки на объекты, но не сами объекты. Метод deepcopy() создает глубокую копию, при которой копируются и объекты, на которые ссылаются элементы словаря или списка.

import copy

dict_a = {'a': 1, 'b': 2}
dict_b = dict_a.copy()
dict_b['c'] = 3

print(dict_a)  # {'a': 1, 'b': 2}
print(dict_b)  # {'a': 1, 'b': 2, 'c': 3}

В приведенном примере мы создаем копию словаря dict_a с помощью метода copy() и изменяем копию, не затрагивая оригинал. При этом оригинальный словарь остается неизменным.

Использование правильных методов для копирования словарей и списков в Python позволяет избежать ошибок и непредвиденных изменений в данных. Помните, что при работе с изменяемыми объектами важно учитывать особенности работы с ссылками и копиями, чтобы ваш код был надежным и предсказуемым.

Твои коллеги будут рады, поделись в

Автор урока

Дмитрий Комаровский
Дмитрий Комаровский

Автоматизация процессов
в КраснодарБанки.ру

Другие уроки курса "Python"

  1. Импорт модуля из другого каталога
  2. Оператор continue в Python
  3. %pinfo: получение информации об объекте
  4. Комментарии в Python.
  5. Управление экспортом элементов
  6. Модуль math: основные функции
  7. Работа с YAML в Python: PyYAML.
  8. IPython и Jupyter Notebook: руководство
  9. Обработка данных в Python
  10. Установка переменной среды в Python
  11. Проверка на палиндром
  12. Очистка данных с помощью pandas
  13. Безопасные SQL-запросы в Python 3.11
  14. Поиск уникальных и повторяющихся элементов
  15. Множества и frozenset
  16. Проверка элементов списка условием
  17. Модуль sys: основы
  18. Распаковка аргументов в Python
  19. Измерение потребления памяти при сортировке
  20. Работа со строками в Python
  21. Метод join() для объединения строк
  22. Применение функций в Python
  23. Объединение списков с использованием itertools.chain
  24. Метод repr() в Python
  25. Форматирование строк с f-строками
  26. Поиск кода
  27. Работа с NumPy массивами
  28. Запрос DELETE с библиотекой requests
  29. Оператор Walrus: правильное использование
  30. Создание матрицы в Python
  31. Работа с исключениями в Python
  32. Шаблоны Flask: условия и циклы
  33. Работа с утверждениями в Python
  34. Объединение Python и Shell
  35. Синхронизация доступа к ресурсам
  36. Метод join() для объединения элементов строки
  37. Создание и инициализация объектов
  38. Работа с collections в Python
  39. Python itertools combinations() — группировка элементов
  40. Руководство по библиотеке pydantic
  41. Оптимизация интернирования строк
  42. Создание GUI с Tkinter: Entry
  43. Управление фоновыми задачами в Python

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