Автор оригинала: 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 Отказ Для любых вопросов, касающихся темы, не стесняйтесь использовать комментарии ниже.
использованная литература
- Мелкие и глубокие операции копии – Документация копирования Python,
- Как скопировать словарь и редактировать копию – Вопрос Stackoverflow,
- Быстрый способ скопировать словарь – Вопрос штакотов.