Как объединить словари в Python
Пример 1: объединить два простых словаря
Метод update () используется в python для объединения одного словаря с другим словарем. В следующем примере показано использование метода update (). Здесь объявлены два словаря с именами stdDic1 и stdDic2. Значения stdDic1 будут добавлены в конце stdDic2. Далее цикл for используется для печати ключей и значений объединенного словаря.
stdDic1 = {'Jony Lever':'English','Meena Ali':'CSE','John Micheal':'LAW'}
# Define a dictionary of student list2
stdDic2 = {'John Abraham':'CSE','Mily Hossain':'BBA','Ella Binte Nazir':'EEE'}
# Merge the second dictionary with the first dictionary
stdDic2.update(stdDic1)
# Print the keys and values of the merged dictionary
for val in stdDic2:
print('\nName:',val)
print('Department:',stdDic2[val])
Вывод:
Запустите скрипт. Следующий вывод появится после запуска скрипта.
Пример 2: объединить простой словарь и список из нескольких словарей
В следующем примере показано, как можно объединить словарь со списком из нескольких словарей. Здесь объявлен словарь с именем isbn для хранения ISBN книги в качестве ключа и типа книги в качестве значения. Список словарей с именем book объявляется для хранения названия книги и имени автора. Метод zip () используется для объединения словарей или кортежей, а метод dict () - для создания словаря. Эти методы используются в этом скрипте для создания нового словаря путем слияния isbn и book. Далее цикл for используется для доступа к значениям объединенного словаря.
isbn = {'67533344':'PHP','997544333':'Java','456688644':'VB.net'}
# Declare a list of multiple dictionary
book = [{'title': 'Murach PHP and MySQL', 'author': 'Joel Murach and Ray Harris'},
{'title': 'Java The Complete Reference', 'author': 'Herbert Schildt'},
{'title': 'Beginning VB.NET', 'author': 'Blair Richard, Matthew Reynolds, and
Thearon Willis'}]
# Create a new dictionary by merging a single and multiple dictionary
mrgDict = dict(zip(isbn, book))
# Print the keys and values of the merged dictionary
for isbn in mrgDict:
print('\nISBN:',isbn)
print('Book Name:',mrgDict[isbn]['title'])
print('Author Name:',mrgDict[isbn]['author'])
Вывод:
Запустите скрипт. Следующий вывод появится после запуска скрипта.
Пример 3: объединить два словаря с помощью пользовательской функции
Два словаря можно объединить с помощью методов copy () и update () в python. Здесь исходные значения словаря останутся без изменений. Функция mergeDic () определена для копирования значений первого словаря в переменную с именем merged и добавления значений второго словаря в merged . Далее значения объединенного словаря печатаются.
dict1 = { "name": "Abir", "age": 25, "gender": "Male" }
dict2 = { "profession": "Programmer", "email": "[email protected]" }
''' Define a function to create a new dictionary merging both keys
and values, of dict1 and dict2'''
def mergeDict(d1, d2):
merged = d1.copy()
merged.update(d2)
return merged
# Call the function to merge
mrgDict = mergeDict(dict1,dict2)
# Print the values of merged dictionary
for idval in mrgDict:
print(idval,':',mrgDict[idval])
Вывод:
Запустите скрипт. Следующий вывод появится после запуска скрипта.
Пример 4: объединение двух словарей с помощью оператора (**)
Словари могут быть объединены без использования встроенной или пользовательской функции с помощью одного выражения. Оператор «**» используется в этом примере для объединения двух словарей. Здесь объявляются две словарные переменные с именами dict1 и dict2, которые объединяются с помощью оператора ** с переменными словаря и сохраняют значения в переменной mrgDict .
dict1 = { "Moniter": 500, "Mouse": 100, "Keyboard": 250 }
dict2 = { "HDD": 300, "Printer": 50, "Mouse":50 }
# Merge dictionaries using '**' operator
mrgDict = {**dict2, **dict1}
# Print the values of merged dictionary
for val in mrgDict:
print(val,':',mrgDict[val])
Вывод:
Запустите скрипт. Следующий вывод появится после запуска скрипта.
Пример 5: объединение двух словарей на основе общих ключей
Если два словаря содержат один и тот же ключ и если значение ключа является числовым, может потребоваться суммирование значений во время объединения. В этом примере показано, как можно добавить числовые значения одних и тех же ключей при объединении двух словарей. Здесь объявлены два словаря с именами store1 и store2. Ключи и значения store1 повторяются в цикле for и проверяют, какие ключи store1 равны ключам store2. Если какой-либо ключ существует, то значения ключа будут добавлены.
store1 = {'Pen': 150, 'Pencil': 250, 'Note Book': 100}
store2 = {'Eraser': 80, 'Pen': 50, 'Sharpner': 30, 'Pencil': 100}
# Merge the values of store2 with store1 with the common keys
for key in store1:
if key in store2:
store1[key] = store1[key] + store2[key]
else:
pass
# Print the keys and values of the merged dictionary
for val in store1:
print(val,':',store1[val])
Вывод:
Запустите скрипт. Здесь два ключа являются общими в словарях. Это «Pen» и «Pencil», и значения этих ключей добавляются.
Пример 6: объединение всех значений словарей путем подсчета общих ключей
В предыдущем примере общие значения двух словарей добавляются на основе конкретного словаря. В этом примере показано, как объединить значения двух словарей и добавить значения общих ключей во время объединения. Метод Counter () используется в скрипте для добавления значений общих ключей.
from collections import Counter
# Declare two dictionaries
store1 = {'Pen': 150, 'Pencil': 250, 'Note Book': 100}
store2 = {'Eraser': 80, 'Pen': 50, 'Sharpner': 30, 'Pencil': 100}
# Merge the values of dictionaries based on common keys
mrgDic=Counter(store1)+Counter(store2)
# Print the keys and values of the merged dictionary
for val in mrgDic:
print(val,':',mrgDic[val])
Вывод:
Запустите скрипт. Здесь один словарь содержит три элемента, а другой словарь содержит четыре элемента. Два ключа распространены в двух словарях.
Вывод:
Вы можете объединить два или более словарей на основе ваших требований к программированию. Я надеюсь, что слияния словарей станут легкой задачей для пользователей Python после отработки приведенных выше примеров.