Python

Как скопировать словарь в Python?

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

Словарь в Python может хранить так много пар ключ-значение в одном месте. Копирование данных вручную может занять много времени.

Или иногда мы вносим некоторые изменения в исходные данные, но через некоторое время нам нужно восстановить предыдущие данные (которые нельзя сохранить обратно). Итак, мы не должны изменять исходные данные, пока не будем уверены. Здесь появляется возможность использовать копирование словаря Python.

Например, есть технологическая компания, в которой есть четыре разных отдела. Каждый год они хранят количество сотрудников, работающих в разных отделах, в виде словаря Python. Что они делают, так это берут данные за прошлый год и делают их копию, а затем обновляют скопированные данные необходимыми обновлениями. и сохранить его как

 employee_2022 = {
     'Networking': 5,
     'Cyber security': 10,
     'Developer': 12,
     'Administration': 8
}

print('Numbers of employees working in 2022: \n', employee_2022)

employee_2023 = dict(employee_2022)
print('Numbers of employees working in 2023: \n', employee_2023)

employee_2023['Developer']: 14
print('updated employee data in 2023: \n', employee_2023)

Как результат этого кода:

Numbers of employees working in 2022: 
 {'Networking': 5, 'Cyber security': 10, 'Developer': 12, 'Administration': 8}
Numbers of employees working in 2023: 
 {'Networking': 5, 'Cyber security': 10, 'Developer': 12, 'Administration': 8}
updated employee data in 2023: 
 {'Networking': 5, 'Cyber security': 10, 'Developer': 14, 'Administration': 8}
Previous year(2022) employee data: 
 {'Networking': 5, 'Cyber security': 10, 'Developer': 12, 'Administration': 8}
как скопировать словарь в питоне

мы можем легко увидеть, что в прошлогодних сохраненных данных в словаре Python не произошло никаких изменений. И мы легко обновили данные, чтобы они были данными нового года. И теперь у нас есть данные за оба года.

Скопируйте словарь в Python

Есть шесть различных способов скопировать словарь Python. Они есть:

  • С использованием конструктор дикт()
  • С использованием понимание словаря метод
  • С использованием для цикла
  • С использованием копировать()
  • С использованием deepcopy() из модуля копирования
  • С использованием = (Присвоение) Оператор

Давайте посмотрим их один за другим.

Способ 1: Копирование словаря Python с помощью конструктора dict()

Как мы знаем, конструктор дикт() используется для создания словаря в Python. Здесь мы просто дадим исходный словарь в качестве аргумента конструктор дикт() и сохранит значение в скопированном словаре.

В следующем примере: у нас есть детали инвентаря электронной коммерции. Где идентификатор продуктов является ключом, а количество, доступное в инвентаре, является значением.

Product_data = {
     '004592': 36,
     '004593': 58,
     '004516': 20,
     '004603': 17
}

print('The original inventory data are: \n', Product_data)

Copied_product_data = dict(Product_data)

print('The inventory data that gonna be copied is: \n', Copied_product_data)

Результат:

The original inventory data are: 
 {'004592': 36, '004593': 58, '004516': 20, '004603': 17}
The inventory data that gonna be copied is: 
 {'004592': 36, '004593': 58, '004516': 20, '004603': 17}
как скопировать словарь в python с помощью dict

Таким образом, мы можем легко использовать дикт() в Python, чтобы скопировать словарь Python.

Метод 2: Копирование словаря Python с использованием понимания словаря

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

В этом примере: у нас есть компания, которая назначила несколько проектов своим сотрудникам в группах. К тому времени они могут изменить проекты, назначенные сотрудникам.

Project_assigned = {
     'salesforce': ['Samy', 'abby'],
     'SAP': ['dave', 'david'],
     'Python': ['Veronica', 'joey']
}

print('Assigned project names: \n', Project_assigned)

Working_project = {key: value for key, value
                   in Project_assigned.items()}

print('Working project names: \n', Working_project)

Вывод кода Python:

Assigned project names: 
 {'salesforce': ['Samy', 'abby'], 'SAP': ['dave', 'david'], 'Python': ['Veronica', 'joey']}
Working project names: 
 {'salesforce': ['Samy', 'abby'], 'SAP': ['dave', 'david'], 'Python': ['Veronica', 'joey']}
как скопировать словарь в python, используя понимание словаря

Компания успешно скопировала словарь Python, используя понимание словаря.

Способ 3: Копирование словаря Python с помощью цикла for

Для цикла в Python используется для зацикливания последовательности. Здесь мы будем перебирать исходный словарь, используя для циклаи мы сохраним все скопированные элементы в скопированном словаре.

В примере: У нас есть данные о гонщиках в США в 2023 году с именами гонщиков и их рекордами. К тому времени эти рекорды могут измениться.

Racers = {
     'Lex Hilton': '3:58.70i*',
     'Jake Gebhardt': '3:59.18i*',
     'Camden Marshall': '3:59.30i'
}

print('The top racers are: \n', Racers)

Copy_racers_data = {}

for key, value in Racers.items():
     Copy_racers_data[key] = value

print('the copies data : \n', Copy_racers_data)

Вывод этого кода:

The top racers are: 
 {'Lex Hilton': '3:58.70i*', 'Jake Gebhardt': '3:59.18i*', 'Camden Marshall': '3:59.30i'}
the copies data : 
 {'Lex Hilton': '3:58.70i*', 'Jake Gebhardt': '3:59.18i*', 'Camden Marshall': '3:59.30i'}
C:\Users\USER\Documents\TSinfo Credential\Images\как скопировать словарь в python, используя цикл for

Таким образом, мы можем использовать для цикла скопировать словарь в Python.

Метод 4: Копирование словаря Python с помощью метода copy()

метод копирования() в Python создает неглубокую копию словаря. функция копирования() не принимает аргументов. Здесь мы будем использовать метод копирования() чтобы скопировать элементы из исходного словаря в другой словарь.

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


Library_books_week01 = {
    'Invisible Man': 'Amy',
    'Beloved': 'Cabby',
    'To Kill a Mockingbird': 'Ian'
}

print('Library books assigned: \n', Library_books_week01)

week02 = Library_books_week01.copy()

print('copied data from library:\n', week02)

Результат:

Library books assigned: 
 {'Invisible Man': 'Amy', 'Beloved': 'Cabby', 'To Kill a Mockingbird': 'Ian'}
copied data from library:
 {'Invisible Man': 'Amy', 'Beloved': 'Cabby', 'To Kill a Mockingbird': 'Ian'}
как скопировать словарь в python с помощью копирования

Метод 5: Копирование словаря Python с помощью deepcopy() из модуля копирования

глубокая копия() метод в Python является членом копировать модуль. Он возвращает новый словарь с скопированными элементами переданного словаря. Он рекурсивно копирует все элементы данного словаря.

В данном примере мы взяли данные с велогонки. гонщикам был присвоен их номер трассы. Но после начала гонки велосипедист может при необходимости сменить трассу. Итак, чтобы сохранить записи, нам нужно изменить данные в соответствии с требованиями.

import copy

cycle_race = {
     'rake': 5,
     'dave': 1,
     'gia': 2
}

print('cyclist name with their track number: \n', cycle_race)

after_1_hour = copy.deepcopy(cycle_race)

print('cyclist after 1 hour:\n', after_1_hour)

Вывод этого блока кода:

Library books assigned: 
 {'Invisible Man': 'Amy', 'Beloved': 'Cabby', 'To Kill a Mockingbird': 'Ian'}
copied data from library:
 {'Invisible Man': 'Amy', 'Beloved': 'Cabby', 'To Kill a Mockingbird': 'Ian'}
как скопировать словарь в python с помощью deepcopy

Таким образом, мы можем использовать deepcopy() из модуля копирования чтобы скопировать словарь Python.

Способ 6: копирование словаря Python с помощью =(оператор присваивания)

Операторы присваивания используются для присвоения значений переменным независимо от типа или класса значения, поскольку Python — это язык программирования с динамическим типом.

До сих пор мы видели методы, когда мы меняли или обновляли данные в скопированном словаре, а с исходным словарем ничего не происходило. Но в этом методе, если мы автоматически изменим/обновим скопированные данные словаря, данные изменятся в исходном/родительском словаре.

Чтобы иметь резервный словарь для любого словаря, мы должны использовать этот метод копирования словаря Python.

В этом примере мы просто воспользуемся оператором = и назначим исходный словарь переменной. Здесь мы возложили домашнюю работу на людей. мы увидим, как скопировать эти данные, а также увидим, что происходит с исходным/родительским словарем Python, когда мы меняем данные скопированного словаря.

work_assigned = {
     'Dusting': ['Samy', 'Abby'],
     'Cooking': ['Dave', 'David'],
     'Gardening': ['Veronica', 'Joey']
}

print('work assigned: \n', work_assigned)

work_going = work_assigned
print('Work going on: \n', work_going)

work_going['washing'] = ['Ian', 'Ray']
print('Updated work going on: \n', work_going)

print('Parent dictionary: \n', work_assigned)

Вывод этого блока кода:

work assigned: 
 {'Dusting': ['Samy', 'Abby'], 'Cooking': ['Dave', 'David'], 'Gardening': ['Veronica', 'Joey']}
Work going on: 
 {'Dusting': ['Samy', 'Abby'], 'Cooking': ['Dave', 'David'], 'Gardening': ['Veronica', 'Joey']}
Updated work going on: 
 {'Dusting': ['Samy', 'Abby'], 'Cooking': ['Dave', 'David'], 'Gardening': ['Veronica', 'Joey'], 'washing': ['Ian', 'Ray']}
Parent dictionary: 
 {'Dusting': ['Samy', 'Abby'], 'Cooking': ['Dave', 'David'], 'Gardening': ['Veronica', 'Joey'], 'washing': ['Ian', 'Ray']}
как скопировать словарь в python с помощью оператора =

Таким образом, мы можем использовать = оператор скопировать словарь в Python.

Заключение:

В этом руководстве вы видели много способов скопировать словарь Python. Если нам нужна фактическая копия, то мы должны хотеть, чтобы копия не влияла на исходный словарь, но если мы хотим, чтобы скопированный словарь изменился, это должны быть резервные данные для родительского словаря, пожалуйста, используйте = operator функция.

Вам также может понравиться:


Ссылка на источник

Похожие статьи

Кнопка «Наверх»