logo

Pythona | Połączenie dwóch słowników

W języku Python słownik to struktura danych zawierająca element w parze klucz-wartość, w której klucze służą do uzyskiwania dostępu do wartości w słowniku. Pyton ma kilka wbudowanych słowników, takich jak defaultdict. W tym artykule zobaczymy różne sposoby połączenia dwóch słowników.

Przykład



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

Łączenie dwóch słowników w Pythonie

Istnieją różne sposoby Słowniki można łączyć za pomocą różnych funkcji i konstruktorów w Pythonie. Poniżej znajduje się kilka następujących sposobów:

  • Za pomocą aktualizacja()
  • Za pomocą operator rozpakowujący
  • Używanie scalania | operator
  • Korzystanie z pętli i Klucze() metoda
  • Korzystanie z konstruktora dict
  • Używanie konstruktora dict() z operatorem union (|)
  • Za pomocą zmniejszyć()

Aktualizacja Pythona()

Korzystając z metody aktualizacja() w Pythonie jedną listę można połączyć z inną. Ale w tym przypadku druga lista jest scalana z pierwszą listą i nie jest tworzona żadna nowa lista. To powraca Nic . W tym przykładzie używamy funkcji aktualizacji do połączenia dwóch słowników.

Pyton
# 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)>

Wyjście:



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

Złożoność czasowa: NA)
Przestrzeń pomocnicza: O(1)

jak odkryć aplikację na Androidzie

Operator rozpakowywania Pythona

Użycie ** [podwójna gwiazdka] to skrót, który pozwala przekazać wiele argumentów do funkcji bezpośrednio przy użyciu słownika. Aby uzyskać więcej informacji, zobacz **kwargs w Pythonie . Używając tego, najpierw przekazujemy wszystkie elementy pierwszego słownika do trzeciego, a następnie przekazujemy drugi słownik do trzeciego. Spowoduje to zastąpienie zduplikowanych kluczy pierwszego słownika.

Pyton
# 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)>

Wyjście
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Złożoność czasowa: O(1)
Złożoność pomocnicza: NA)



Python Scal słowniki przy użyciu | w Pythonie 3.9

W najnowszej aktualizacji Pythona możemy teraz używać | operator, aby połączyć dwa słowniki. Jest to bardzo wygodna metoda łączenia słowników. W tym przykładzie używamy | operator, aby połączyć dwa słowniki.

Pyton
# 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>

Wyjście:

pobierz autocad 2019 angielski mediafire
{'x': 10, 'a': 6, 'b': 4, 'y': 8}>

Złożoność czasowa: O(1)
Przestrzeń pomocnicza: NA)

Korzystanie z pętli for i metody kluczy().

W tym przykładzie używamy pętli i klucz() metoda łączenia dwóch słowników.

Pyton
# 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>

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

Python Scal słowniki przy użyciu klasy ChainMap

W tym przykładzie łączymy słowniki w Pythonie, korzystając z wbudowanej metody Mapa Łańcucha klasa z zbiory moduł. Ta klasa umożliwia utworzenie pojedynczego widoku wielu słowników, a wszelkie aktualizacje lub zmiany wprowadzone w ChainMap zostaną odzwierciedlone w bazowych słownikach.

Pyton
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>

Wyjście
1 3 5 6>

Połącz dwa słowniki w Pythonie, używając konstruktora dict:

W tym przykładzie używamy konstruktora dict do połączenia dwóch słowników.

Pyton
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))>

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

Złożoność czasowa: NA)
Przestrzeń pomocnicza: NA)

Łączenie słowników w Pythonie przy użyciu konstruktora dict() i operatora union (|)

Ta metoda wykorzystuje konstruktor dict() z operatorem union (|) w celu połączenia dwóch słowników. Operator union łączy klucze i wartości z dwóch słowników, a wszelkie wspólne klucze w dwóch słownikach pobierają wartość z drugiego słownika.

Pyton
# 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)>

Wyjście
{'d': 6, 'b': 8, 'c': 4, 'a': 10}>

Złożoność czasowa: O(n), gdzie n jest całkowitą liczbą par klucz-wartość w obu słownikach.
Przestrzeń pomocnicza: O(n), gdzie n jest całkowitą liczbą par klucz-wartość w obu słownikach

Python Połącz dwa słowniki za pomocą funkcji redukcji():

W tym przykładzie łączymy dwa słowniki za pomocą funkcji redukcji(). W tej metodzie definiujemy funkcję scalającą, następnie przyjmujemy dwa słowniki jako argumenty i zwracamy ich scalanie.

Pyton
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.>

Wyjście
{'a': 10, 'b': 8, 'd': 6, 'c': 4}>

Złożoność czasowa :O(n), gdzie n to liczba słowników na liście dict_list.
Złożoność pomocnicza: O(m), gdzie m to całkowita liczba par klucz-wartość we wszystkich słownikach.