среда, 20 апреля 2011 г.

Как можно скопировать объект в Python?

Используйте copy.copy или copy.deepcopy для большинства объектов, но не всех.

import copy

newobj = copy.copy(oldobj) # неполная копия
newobj = copy.deepcopy(oldobj) # полная (рекурсивная) копия

Неполное копирование строит новый составной объект, а затем ( по мере возможности ) вставляет ссылки в него на объекты оригинала.

Глубокое копирование строит новый составной объект, а затем рекурсивно, вставляет копии объектов оригинала в него.

Некоторые объекты могут быть скопированы проще. Так словари (dictionary) имеют метод copy:

newdict = olddict.copy()

Последовательности (sequence) могут быть скопированы через срезы (slice):

new_list = L[:]

Можно также использовать функции list, tuple, dict, set для копирования соответствующих объектов, также и для преобразования между различными типами последовательности:

new_list = list(L) # копирование
new_dict = dict(olddict) # копирование

new_set = set(L) # конвертирование list в set
new_tuple = tuple(L) # конвертирование list в tuple
Оригинал

Комментариев нет:

Отправить комментарий