Метод copy() словаря Python3

Python3 字典Словарь 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 字典Словарь Python3

Другие расширения