Рубрики
Без рубрики

4 простые способы скопировать словарь в Python

В этом руководстве мы собираемся обсудить различные методы или методы для копирования словаря в Python.

Автор оригинала: Pankaj Kumar.

4 простые способы скопировать словарь в Python

Введение

В этом руководстве мы собираемся обсудить различные методы или методы Скопируйте словарь в Python Отказ

Теоретически, Словарь В Python является неупорядоченной коллекцией значений данных, которые хранят соответствующие элементы AS Ключевой элемент пара. Кроме того, каждый элемент может быть доступен пользователем, используя его соответствующие ключ Отказ

Итак, давайте направимся в процедуры копирования.

Методы для копирования словаря в Python

В этом разделе мы собираемся уточнить 4 Разные способы, с которыми можно скопировать словарь в Python. Давайте перейдем на них один за другим.

1. Копирование словаря элемента по элементу

В этой технике мы перемещаемся по всему словарю и копируйте каждый элемент, указанный ключом к новому словарю, который ранее объявил ранее. Посмотрите на код ниже:

#given dictionary
dict1={0:'1',1:'2',3:[1,2,3]}
print("Given Dictionary:",dict1)
#new dictionary
dict2={}
for i in dict1:
    dict2[i]=dict1[i] #element by elemnet copying

print("New copy:",dict2)
#Updating dict2 elements and checking the change in dict1
dict2[1]=33
dict2[3][1]='22' #list item updated
print("Updated copy:",dict2)
print("Given Dictionary:",dict1)

Выход :

Given Dictionary: {0: '1', 1: '2', 3: [1, 2, 3]}
New copy: {0: '1', 1: '2', 3: [1, 2, 3]}

Updated copy: {0: '1', 1: 33, 3: [1, '22', 3]}
Given Dictionary: {0: '1', 1: '2', 3: [1, '22', 3]}

Здесь,

  • Мы инициализировали словарь, Dict1.
  • После того, как мы распечатаем его, мы объявляем пустой словарь, Dict2 где мы собираемся скопировать Dict1
  • Далее мы проходим через Dict1, используя для петли Отказ И используя операцию Dict2 [I] = Dict1 [I] мы копируем каждый элемент из Dict1 к Dict2 Отказ

Теперь, когда наше копирование сделано, помните, что = Оператор создает ссылки на счетные объекты в словаре. Итак, если нетерпимый элемент в Dict2 обновляется, соответствующий элемент в Dict1 сохраняется нетронутыми.

Тогда как, если ИТЕРИТЕЛЬНО Объект, как элемент списка изменен, мы видим изменение Dict1 Список тоже. Вторая часть вышеуказанного описания объясняет это. Попробуйте сравнить и результаты DICT1, так и DICT2 после обновления. Мы видим, что вышеуказанное утверждение верно.

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

Давайте посмотрим, как мы можем напрямую скопировать словарь в Python, используя один ‘=’ оператор.

#given dictionary
dict1={1:'a',2:'b',3:[11,22,33]}
print("Given Dictionary:",dict1)
#new dictionary
dict2=dict1 #copying using = operator
print("New copy:",dict2)

#Updating dict2 elements and checking the change in dict1
dict2[1]=33
dict2[3][2]='44' #list item updated

print("Updated copy:",dict2)
print("Given Dictionary:",dict1)

Выход :

Given Dictionary: {1: 'a', 2: 'b', 3: [11, 22, 33]}

New copy: {1: 'a', 2: 'b', 3: [11, 22, 33]}

Updated copy: {1: 33, 2: 'b', 3: [11, 22, '44']}
Given Dictionary {1: 33, 2: 'b', 3: [11, 22, '44']}

В коде выше,

  • Во-первых, мы инициализируем словарь, Dict1 Отказ И напрямую скопируйте его на новый объект Dict2 по линии кода Dict2 = Dict1.
  • Эта операция копирует ссылки каждого объекта, присутствующего в Dict1 в новый словарь, Dict2
  • Следовательно, обновление любого элемента DICT2 приведет к изменению DICT1 и наоборот.
  • Это ясно из вышеуказанного кода, который, когда мы обновляем любой (нетеабельный или нетеримый) объект в Dict2 мы также видим одинаковое изменение Dict1 Отказ

3. Использование метода Copy ()

Словарь Копировать () Метод в Python возвращает Малая копия данного словаря. Это похоже на то, что мы ранее мы видели в случае копирования элементов, проехав через словарь.

То есть ссылки на элементы словаря вставляются в новый словарь (неглубокая копия). Посмотрите на код ниже:

#given dictionary
dict1={ 10:'a', 20:[1,2,3], 30: 'c'}
print("Given Dictionary:",dict1)
#new dictionary
dict2=dict1.copy() #copying using copy() method
print("New copy:",dict2)

#Updating dict2 elements and checking the change in dict1
dict2[10]=10
dict2[20][2]='45' #list item updated

print("Updated copy:",dict2)
print("Given Dictionary:",dict1)

Выход :

Given Dictionary: {10: 'a', 20: [1, 2, 3], 30: 'c'}
New copy: {10: 'a', 20: [1, 2, 3], 30: 'c'}

Updated copy: {10: 10, 20: [1, 2, '45'], 30: 'c'}
Given Dictionary: {10: 'a', 20: [1, 2, '45'], 30: 'c'}

В приведенном выше коде:

  • Мы инициализируем словарь Dict1 с некоторыми ценностями. И использовать Копировать () метод на нем создать неглубокую копию
  • После того, как копия была сделана, мы обновляем новые элементы и видим соответствующее изменение в исходном словаре.
  • Похож на случай элемент по элементу Техника копирования, здесь слишком изменится в нерешимых элементах Dict2 не имеет никакого эффекта на оригинальном словаре
  • Принимая во внимание, что для утечников, таких как списки, изменение отражено в данном словаре, Dict1 тоже

4. Использование COPY.DEEPCOPY () Метод для копирования словаря в Python

Deepcopy () Метод в Python является членом Скопировать модуль. Он возвращает новый словарь с копированными элементами пропущенного словаря. Примечание, этот метод копирует все элементы данного словаря в рекурсивный манера. Давайте посмотрим, как можно использовать,

import copy

#given dictionary
dict1={ 10:'a', 20:[1,2,3], 30: 'c'}
print("Given Dictionary:",dict1)
#new dictionary
dict2=copy.deepcopy(dict1) #copying using deepcopy() method

print("New copy:",dict2)
#Updating dict2 elements and checking the change in dict1
dict2[10]=10
dict2[20][2]='45' #list item updated

print("Updated copy:",dict2)
print("Given Dictionary:",dict1)

Выход :

Given Dictionary: {10: 'a', 20: [1, 2, 3], 30: 'c'}
New copy: {10: 'a', 20: [1, 2, 3], 30: 'c'}

Updated copy: {10: 10, 20: [1, 2, '45'], 30: 'c'}
Given Dictionary: {10: 'a', 20: [1, 2, 3], 30: 'c'}

Теперь,

  • В первой строке мы инициализируем оригинальный словарь Dict1 ,
  • Мы используем copy.deepcopy () Способ копирования элементов Dict1 в новом словаре Dict2 ,
  • После успешного копирования мы обновляем новую копию и видим изменения в оригинальном словаре,
  • Как мы можем видеть с вывода, любые изменения в Dict2 это не отражено в Dict1 Отказ Следовательно, этот метод полезен, когда нам нужно изменить новый словарь в нашем коде, сохраняя инфузон оригинала.

Заключение

Итак, в этом руководстве мы узнали о 4 Разные пути к Скопируйте словарь в Python Отказ Для любых вопросов, касающихся темы, не стесняйтесь использовать комментарии ниже.

использованная литература