Копирование данных

Выполнение мелкой копии

Мелкая копия - это копия коллекции без выполнения копирования ее элементов.

 >>> import copy
>>> c = [[1,2]]
>>> d = copy.copy(c)
>>> c is d
False
>>> c[0] is d[0]
True 

Выполнение глубокой копии

Если у вас есть вложенные списки, желательно также клонировать вложенные списки. Это действие называется глубоким копированием.

 >>> import copy
>>> c = [[1,2]]
>>> d = copy.deepcopy(c)
>>> c is d
False
>>> c[0] is d[0]
False 

Выполнение мелкой копии списка

Вы можете создавать мелкие копии списков, используя срезы.

 >>> l1 = [1,2,3]
>>> l2 = l1[:]     # Perform the shallow copy.
>>> l2
[1,2,3]
>>> l1 is l2
False 

Скопировать словарь

Словарь объект имеет метод copy.Он выполняет неглубокую копию словаря.

 >>> d1 = {1:[]}
>>> d2 = d1.copy()
>>> d1 is d2
False
>>> d1[1] is d2[1]
True 

Скопировать набор

Наборы также copy метод. Вы можете использовать этот метод для выполнения поверхностного копирования.

>>> s1 = {()}
>>> s2 = s1.copy()
>>> s1 is s2
False
>>> s2.add(3)
>>> s1
{[]}
>>> s2
{3,[]}