Konwertuj listę na słownik w Pythonie

Przekształcanie listy w strukturę słownikową w języku Python nie stanowi skomplikowanego zadania.

Przyjrzyjmy się różnym metodom, które umożliwiają konwersję listy do słownika.

Wprowadzenie

Zanim zagłębimy się w instrukcję krok po kroku, przeanalizujmy przykład, jak dokonać transformacji listy w słownik. Załóżmy, że dysponujemy listą zawierającą krotki (gdzie każda krotka składa się z dwóch elementów), lub po prostu listą elementów. W obu przypadkach, celem jest przekształcenie tych danych wejściowych w słowniki.

Przykłady:

W pierwszym przypadku mamy do czynienia z listą krotek, którą chcemy zamienić na słownik. W tym scenariuszu pierwszy element każdej krotki staje się kluczem, a drugi element – wartością w tworzonym słowniku.

Dane wejściowe: lista_jeden = [(‘a’, ‘A’), (‘b’, ‘B’), (‘c’, ‘C’)]

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

W drugim przykładzie startujemy z listą pojedynczych elementów, którą transformujemy w słownik poprzez przypisanie im naprzemiennych ról klucza i wartości. Jeżeli lista posiada nieparzystą liczbę elementów, ostatniemu z nich przypisujemy domyślną wartość null jako wartość w słowniku.

Dane wejściowe: lista_jeden = [‘a’, ‘A’, ‘b’, ‘B’, ‘c’, ‘C’, ‘d’]

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

Poznaliśmy już cel tego poradnika. Teraz omówimy oba te przykłady, prezentując różne techniki. Zacznijmy od pierwszego z nich.

Konwersja Listy Krotek w Słownik

Spójrzmy, w jaki sposób można przekształcić listę krotek w słownik. Zachęcamy do samodzielnego napisania kodu, podążając za poniższymi instrukcjami.

  • Rozpocznij od zainicjowania listy krotek, używając fikcyjnych danych, analogicznie do wspomnianych przykładów (upewniając się, że każda krotka na liście zawiera dokładnie dwa elementy).
  • Przekaż utworzoną listę krotek jako argument do funkcji dict i przypisz wynik do nowej zmiennej.
  • To wszystko! Dokonaliśmy konwersji listy krotek na słownik przy użyciu tylko jednej linijki kodu.
# lista krotek
lista_krotek = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# transformacja do słownika
slownik_z_krotek = dict(lista_krotek)

# wyświetlenie uzyskanego słownika
print(slownik_z_krotek)

Możesz przetestować działanie tego kodu, uruchamiając go. Powinieneś otrzymać wynik zgodny z przykładami.

Konwersja Zwykłej Listy w Słownik

Dowiedzieliśmy się już, jak przekonwertować listę krotek na słownik – co w Pythonie jest dość prostą operacją. W tej części przyjrzymy się, jak przekształcić zwykłą listę w strukturę słownikową.

Aby lepiej zrozumieć ten proces, odwołajmy się do drugiego przykładu z sekcji wprowadzającej tego poradnika.

Wykonaj poniższe kroki, aby napisać kod dla drugiego scenariusza.

Ustawiamy domyślną wartość None dla elementu, który nie ma odpowiadającej mu wartości (w przypadku listy o nieparzystej liczbie elementów). Aby to osiągnąć, posłużymy się funkcją o nazwie zip_longest, pochodzącą z modułu itertools.

  • Na początku zaimportuj moduł itertools i zainicjuj listę o nieparzystej liczbie elementów, analogicznie jak w przytoczonych przykładach.
  • Przekształć listę w obiekt iterowalny, co pozwoli uniknąć powtarzania par klucz-wartość w funkcji zip_longest.
  • Następnie przekaż iterowalny obiekt do funkcji zip_longest, określając wartość fillvalue jako None. Spowoduje to zwrócenie obiektu typu zip.
    • Należy przekazać ten sam obiekt iterowalny dwukrotnie, ponieważ funkcja pobiera klucz i wartość z dwóch różnych iteracji. W naszym przypadku zarówno klucze, jak i wartości znajdują się w obrębie tego samego obiektu iterowalnego. Z tego powodu musimy przekazać go dwa razy, a dopiero potem wartość fillvalue.
  • Przekonwertuj uzyskany obiekt na słownik Pythona za pomocą funkcji dict.
  • Na końcu wydrukuj wynikowy słownik.
# zaimportowanie modułu
import itertools

# zwykła lista o nieparzystej liczbie elementów
zwykla_lista = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# konwersja do obiektu iterowalnego
lista_iterowalna = iter(zwykla_lista)

# przekształcenie zwykłej listy w słownik
slownik_z_listy_object = itertools.zip_longest(lista_iterowalna, lista_iterowalna, fillvalue=None)

# transformacja obiektu zip_longest do słownika z użyciem `dict`
slownik_z_listy = dict(slownik_z_listy_object)

# wyświetlenie słownika
print(slownik_z_listy)

Wartość fillvalue można dostosować według potrzeb. Zachęcamy do eksperymentowania z różnymi wartościami i przetestowania kodu, aby sprawdzić, czy otrzymane wyniki są zgodne z oczekiwanymi.

Podsumowanie

Mam nadzieję, że proces konwersji listy w słownik przypadł Ci do gustu. Do zobaczenia w kolejnym poradniku.

Następnie dowiedz się, jak spłaszczyć listę w języku Python.

Udanego kodowania 🙂

Spodobał Ci się ten artykuł? Podziel się nim ze znajomymi!


newsblog.pl