Метод copy() словаря Python3
Описание
Функция copy() словаря Python возвращает поверхностную копию словаря.
Синтаксис
Синтаксис метода copy():
dict.copy()
Parameters
- Н/Д。
Возвращаемое значение
Возвращает поверхностную копию словаря.
Пример
Следующий пример демонстрирует, как работает функция copy():
Пример
#!/usr/bin/python3
dict1 = {'Name': 'Example', 'Age': 7, 'Class': 'First'}
dict2 = dict1.copy()
print ("Новый скопированный словарь:",dict2)
Результат вывода приведённого выше примера:
新复制的字典为 : {'Age': 7, 'Name': 'Example', 'Class': 'First'}
Разница между прямым присваиванием и 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.
{'user': 'root', 'num': [2, 3]}
{'user': 'root', 'num': [2, 3]}
{'user': 'example', 'num': [2, 3]}
Расширение знаний
Анализ прямого присваивания, поверхностного и глубокого копирования в Python
Другие расширения
Словарь Python3