Метод copy() словаря Python
Описание
Функция copy() словаря Python возвращает поверхностную копию словаря.
Синтаксис
Синтаксис метода copy():
dict.copy()
Parameters
- Н/Д。
Возвращаемое значение
Возвращает поверхностную копию словаря.
Примеры
Следующий пример демонстрирует использование функции copy():
Пример
#!/usr/bin/python
dict1 = {'Name': 'Zara', 'Age': 7};
dict2 = dict1.copy()
print "New Dictinary : %s" % str(dict2)
Вывод приведенного выше примера:
New Dictinary : {'Age': 7, 'Name': 'Zara'}
Разница между прямым присваиванием и copy
Это можно проиллюстрировать следующим примером:
Пример
#!/usr/bin/python
# -*- coding: UTF-8 -*-
dict1 = {'user':'example','num':[1,2,3]}
dict2 = dict1 # Поверхностное копирование: ссылка на объект
dict3 = dict1.copy() # Поверхностное копирование: глубоко копирует родительский объект (каталог первого уровня), но не копирует дочерний объект (каталог второго уровня); он всё ещё остаётся ссылкой
# Изменение данных
dict1['user']='root'
dict1['num'].remove(1)
# Вывод результата
print(dict1)
print(dict2)
print(dict3)
В примере dict2 фактически является ссылкой (псевдонимом) на dict1, поэтому результаты вывода одинаковы. Родительский объект dict3 глубоко копируется и не меняется при изменениях dict1, но дочерний объект поверхностно копируется, поэтому он меняется вместе с изменениями dict1.
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'root'}
{'num': [2, 3], 'user': 'example'}
Расширение знаний
Анализ прямого присваивания, поверхностного и глубокого копирования в Python
Другие расширения
Словарь Python