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

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

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