Konwertuj listę na słownik w Pythonie

Konwertowanie listy na słownik w Pythonie nie jest takie trudne.

Sprawdźmy różne sposoby konwersji listy na słownik.

Wprowadzenie

Zanim przejdziemy do samouczka, zobaczmy przykład konwersji listy na słownik. Będziemy mieć listę krotek (każda krotka składa się z dwóch elementów) lub tylko listę elementów. Weźmiemy oba dane wejściowe i przekonwertujemy je na słowniki.

Przykłady:

W poniższym przykładzie wzięliśmy listę krotek i przekonwertowaliśmy ją na słownik. Przyjęliśmy pierwszy element każdej krotki jako klucz, a drugi element jako wartość dla słownika.

Wejście: lista_jeden = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]

Wynik: {’a’: 'A’, 'b’: 'B’, 'c’: 'C’}

W poniższym przykładzie wzięliśmy listę elementów i przekonwertowaliśmy ją na słownik z elementami alternatywnymi, takimi jak klucz i wartość. Kluczowi nadamy null, jeśli nie ma dla niego żadnego elementu jako klucza (jeśli lista ma nieparzystą liczbę elementów).

Wejście: lista_jeden = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]

Wyjście: {’a’: 'A’, 'b’: 'B’, 'c’: 'C’, 'd’: Brak}

Widzieliśmy cel samouczka. Omówimy oba przykłady na różne sposoby. Zacznijmy od pierwszego przykładu.

Lista krotek – Słownik

Zobaczmy, jak przekonwertować listę krotek na słownik. Możesz spróbować napisać kod, wykonując następujące kroki.

  • Zainicjuj listę krotek fikcyjnymi danymi zgodnie z powyższymi przykładami (upewnij się, że każda krotka na liście ma dokładnie dwa elementy).
  • Przekaż listę krotek do metody dict i zapisze wynik w nowej zmiennej.
  • To wszystko, przekonwertowaliśmy listę krotek na słownik z pojedynczą linią kodu.
# list of tuples
list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# converting to dictionary
list_of_tuples_dict = dict(list_of_tuples)

# printing the result dict
print(list_of_tuples_dict)

Możesz przetestować działanie powyższego programu, uruchamiając go. Otrzymasz wynik, jak widzimy w przykładach.

Lista – Słownik

Widzieliśmy, jak przekonwertować listę krotek na słownik i jest to prosta rzecz w Pythonie. W tej sekcji zobaczymy, jak przekonwertować zwykłą listę na słownik.

Zobacz drugi przykład z pierwszej sekcji samouczka, aby uzyskać większą przejrzystość.

Wykonaj poniższe kroki, aby napisać kod dla drugiego przykładu.

Wypełniliśmy domyślną wartość None dla elementu, który nie będzie miał żadnej wartości (lista zawierająca nieparzystą liczbę elementów). W tym celu musimy użyć metody o nazwie zip_longest z modułu itertools.

  • Zaimportuj moduł itertools i zainicjuj listę z nieparzystą liczbą elementów podanych w przykładach.
  • Przekonwertuj listę na iterowalną, aby uniknąć powtórzeń par klucz i wartość w metodzie zip_longest.
  • Teraz przekaż iterowalność do metody zip_longest i fillvalue jako None. Zwróci obiekt zip.
    • Musimy przekazać iterable dwa razy, ponieważ pobiera klucz i wartość z dwóch iteracji. W naszym przypadku zarówno klucze, jak i wartości są w tej samej iterowalności. Musimy więc przekazać go dwa razy przed wartością wypełnienia.
  • Przekonwertuj obiekt na słownik Pythona za pomocą metody dict.
  • Wydrukuj wynik.
# importing the module
import itertools

# plain list with odd number of elements
plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# converting it to iterable to avoid repetition
plain_list_iter = iter(plain_list)

# converting the plain_list to dict
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)

# convert the zip_longest object to dict using `dict`
plain_list_dict = dict(plain_list_dict_object)

# print it
print(plain_list_dict)

Możesz nadać wartość wypełnienia, co chcesz. Wypróbuj z nim różne rzeczy. I wykonaj kod, aby zobaczyć, czy otrzymujemy dokładne dane wyjściowe, jak wspomniano w przykładzie, czy nie.

Wniosek

Mam nadzieję, że podobała Ci się konwersja listy do słownika. Spotkajmy się w następnym samouczku.

Następnie dowiedz się, jak spłaszczyć listę w Pythonie.

Miłego kodowania 🙂

Podobał Ci się artykuł? A co powiesz na dzielenie się ze światem?