logo

Python | Об’єднання двох словників

У Python словник — це структура даних, яка містить елемент у парі ключ-значення, у якій ключі використовуються для доступу до значень у словнику. Python має деякі вбудовані словники, такі як defaultdict. У цій статті ми побачимо різні способи об’єднання двох словників.

приклад



  Input:   dict1 = {'a': 10, 'b': 8}  dict2 = {'d': 6, 'c': 4}   Output:   {'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Об’єднання двох словників у Python

Існують різні способи словники можна об’єднати за допомогою різних функцій і конструкторів у Python. Нижче наведено кілька таких способів:

програми хмарних обчислень
  • Використання оновлення()
  • Використання оператор розпакування
  • Використання злиття | оператор
  • За допомогою петель і ключі() метод
  • Використання конструктора dict
  • Використання конструктора dict() з оператором об’єднання (|)
  • Використання зменшити()

Оновлення Python()

За допомогою методу оновлення() у Python один список можна об’єднати в інший. Але в цьому випадку другий список об’єднується з першим і новий список не створюється. Воно повертається Жодного . У цьому прикладі ми використовуємо функцію оновлення для об’єднання двох словників.

Python
# Python code to merge dict using update() method def Merge(dict1, dict2): return(dict2.update(dict1)) # Driver code dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} # This returns None print(Merge(dict1, dict2)) # changes made in dict2 print(dict2)>

Вихід:



None {'c': 4, 'a': 10, 'b': 8, 'd': 6}>

Часова складність: O(n)
Допоміжні приміщення: О(1)

Оператор розпакування Python

Використання ** [подвійна зірочка] — це ярлик, який дозволяє передавати кілька аргументів функції безпосередньо за допомогою словника. Для отримання додаткової інформації див **kwargs у Python . Використовуючи це, ми спочатку передаємо всі елементи першого словника в третій, а потім передаємо другий словник у третій. Це замінить повторювані ключі першого словника.

Python
# Python code to merge dict using a single  # expression def Merge(dict1, dict2): res = {**dict1, **dict2} return res # Driver code dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} dict3 = Merge(dict1, dict2) print(dict3)>

Вихід
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Часова складність: О(1)
Допоміжна складність: O(n)



fmovies

Злиття словників Python за допомогою | у Python 3.9

В останньому оновленні python тепер ми можемо використовувати | оператор для об’єднання двох словників. Це дуже зручний спосіб об’єднання словників. У цьому прикладі ми використовуємо | оператор для об’єднання двох словників.

Python
# code # Python code to merge dict using a single  # expression  def Merge(dict1, dict2): res = dict1 | dict2 return res # Driver code  dict1 = {'x': 10, 'y': 8} dict2 = {'a': 6, 'b': 4} dict3 = Merge(dict1, dict2) print(dict3) # This code is contributed by virentanti16>

Вихід:

{'x': 10, 'a': 6, 'b': 4, 'y': 8}>

Часова складність: О(1)
Допоміжні приміщення: O(N)

Використання циклу for і методу keys().

У цьому прикладі ми використовуємо цикл and ключ() метод об'єднання двох словників.

Python
# code # Python code to merge dictionary def Merge(dict1, dict2): for i in dict2.keys(): dict1[i]=dict2[i] return dict1 # Driver code dict1 = {'x': 10, 'y': 8} dict2 = {'a': 6, 'b': 4} dict3 = Merge(dict1, dict2) print(dict3) # This code is contributed by Bhavya Koganti>

Вихід
{'x': 10, 'y': 8, 'a': 6, 'b': 4}>

Злиття словників Python за допомогою класу ChainMap

У цьому прикладі ми об’єднуємо словники в Python за допомогою вбудованого ChainMap класу від ст колекції модуль. Цей клас дозволяє створювати єдине представлення кількох словників, і будь-які оновлення або зміни, внесені до ChainMap, будуть відображені в базових словниках.

Python
from collections import ChainMap # create the dictionaries to be merged dict1 = {'a': 1, 'b': 2} dict2 = {'c': 3, 'd': 4} # create a ChainMap with the dictionaries as elements merged_dict = ChainMap(dict1, dict2) # access and modify elements in the merged dictionary print(merged_dict['a']) # prints 1 print(merged_dict['c']) # prints 3 merged_dict['c'] = 5 # updates value in dict2 print(merged_dict['c']) # prints 5 # add a new key-value pair to the merged dictionary merged_dict['e'] = 6 # updates dict1 print(merged_dict['e']) # prints 6>

Вихід
1 3 5 6>

Об’єднайте два словники в Python за допомогою конструктора dict:

У цьому прикладі ми використовуємо конструктор dict для об’єднання двох словників.

Python
def merge_dictionaries(dict1, dict2): merged_dict = dict1.copy() merged_dict.update(dict2) return merged_dict # Driver code dict1 = {'x': 10, 'y': 8} dict2 = {'a': 6, 'b': 4} print(merge_dictionaries(dict1, dict2))>

Вихід
{'x': 10, 'y': 8, 'a': 6, 'b': 4}>

Часова складність: O(N)
Допоміжний простір: O(N)

наведення CSS

Словники Python Merge за допомогою конструктора dict() і оператора об’єднання (|)

Цей метод використовує конструктор dict() з оператором об’єднання (|) для об’єднання двох словників. Оператор об’єднання поєднує ключі та значення двох словників, і будь-які спільні ключі в двох словниках приймають значення з другого словника.

Python
# method to merge two dictionaries using the dict() constructor with the union operator (|) def Merge(dict1, dict2): # create a new dictionary by merging the items of the two dictionaries using the union operator (|) merged_dict = dict(dict1.items() | dict2.items()) # return the merged dictionary return merged_dict # Driver code dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} # merge the two dictionaries using the Merge() function merged_dict = Merge(dict1, dict2) # print the merged dictionary print(merged_dict)>

Вихід
{'d': 6, 'b': 8, 'c': 4, 'a': 10}>

Часова складність: O(n), де n – загальна кількість пар ключ-значення в обох словниках.
Допоміжний простір: O(n), де n – загальна кількість пар ключ-значення в обох словниках

Python об’єднує два словники за допомогою reduce():

У цьому прикладі ми об’єднуємо два словники за допомогою функції reduce(). У цьому методі ми визначаємо функцію злиття, потім приймаємо два словники як аргументи та повертаємо їхнє злиття.

Python
from functools import reduce def merge_dictionaries(dict1, dict2): merged_dict = dict1.copy() merged_dict.update(dict2) return merged_dict dict1 = {'a': 10, 'b': 8} dict2 = {'d': 6, 'c': 4} dict_list = [dict1, dict2] # Put the dictionaries into a list result_dict = reduce(merge_dictionaries, dict_list) print(result_dict) #This code is contributed by Rayudu.>

Вихід
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Часова складність: O(n), де n – кількість словників у списку dict_list.
Допоміжна складність : O(m), де m – загальна кількість пар ключ-значення у всіх словниках.