У 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 – загальна кількість пар ключ-значення у всіх словниках.