Python Glossary English

все Python 3Словари (dict)функция

dict.copy

копирование

Возвращает поверхностную (shallow) копию словаря: вложенные объекты разделяются с оригиналом.

Синтаксис

d.copy()

Тот же результат дают dict(d) и {**d} — все три копируют ровно один уровень и сохраняют порядок вставки. Тонкость с наследованием: если класс унаследован от dict, его copy() вернёт обычный dict, а не ваш подкласс; чтобы сохранить тип, нужен copy.copy() или собственный __copy__.

Примеры

a = {'x': 1}
b = a.copy()
b['y'] = 2
print(a)   # → {'x': 1}
print(b)   # → {'x': 1, 'y': 2}
import copy
orig = {"a": [1,2], "b": 3}
shallow = orig.copy(); shallow["a"].append(99)
print(orig)     # → {'a': [1, 2, 99], 'b': 3}  (список общий)
orig2 = {"a": [1,2], "b": 3}
deep = copy.deepcopy(orig2); deep["a"].append(99)
print(orig2)    # → {'a': [1, 2], 'b': 3}        (оригинал цел)
d = {"x": 1}; d2 = d.copy()
print(d is d2)  # → False
d2["y"] = 2; print(d)  # → {'x': 1}  (d не изменился)

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности