Převést seznam na slovník v Pythonu

Transformace seznamu na slovník v Pythonu není nijak složitá operace.

Pojďme se detailněji podívat na různé metody, jak lze dosáhnout převodu seznamu do formátu slovníku.

Úvod

Než se pustíme do samotného návodu, ilustrujme si celý proces na příkladu. Budeme pracovat se seznamem, který obsahuje n-tice (každá z nich se skládá ze dvou prvků), a s obyčejným seznamem prvků. Z těchto vstupních dat vytvoříme slovníky.

Ukázkové případy:

V prvním případě vezmeme seznam n-tic a převedeme jej na slovník. První prvek každé n-tice se stane klíčem, a druhý prvek bude jeho hodnotou.

Vstup: list_one = [('a', 'A'), ('b', 'B'), ('c', 'C')]

Výstup: {'a': 'A', 'b': 'B', 'c': 'C'}

V druhém případě pracujeme s obyčejným seznamem prvků. Při jeho transformaci do slovníku se střídavé prvky stanou klíči a hodnotami. Pokud seznam obsahuje lichý počet prvků, klíč, pro který nebude existovat odpovídající hodnota, bude mít přiřazenou hodnotu null.

Vstup: list_one = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

Výstup: {'a': 'A', 'b': 'B', 'c': 'C', 'd': None}

Cíle tohoto návodu jsou nastíněny. V následujících částech si podrobněji probereme oba příklady a ukážeme si různé přístupy k jejich řešení. Začněme s prvním případem.

Transformace seznamu n-tic na slovník

Pojďme se podívat, jak můžeme konvertovat seznam n-tic na slovník. Můžete zkusit implementovat kód pomocí následujících kroků:

  • Inicializujte seznam n-tic s fiktivními daty dle uvedených příkladů. Ujistěte se, že každá n-tice má přesně dva prvky.
  • Seznam n-tic předejte metodě dict() a výsledek uložte do nové proměnné.
  • To je vše. Jedním řádkem kódu jste provedli transformaci seznamu n-tic na slovník.
# seznam n-tic
list_of_tuples = [('a', 'A'), ('b', 'B'), ('c', 'C')]

# převod na slovník
list_of_tuples_dict = dict(list_of_tuples)

# výpis výsledného slovníku
print(list_of_tuples_dict)

Výstup tohoto programu si můžete ověřit jeho spuštěním. Výsledkem bude slovník odpovídající uvedeným příkladům.

Transformace obyčejného seznamu na slovník

Viděli jsme, jak snadné je v Pythonu převést seznam n-tic na slovník. Nyní si ukážeme, jak transformovat obyčejný seznam na slovník.

Pro lepší pochopení si znovu prohlédněte druhý příklad z úvodní části tohoto tutoriálu.

Při psaní kódu pro druhý příklad se řiďte následujícími kroky.

Pro prvky, které nemají odpovídající hodnotu (v případě seznamu s lichým počtem prvků), použijeme výchozí hodnotu None. K tomu použijeme metodu zip_longest z modulu itertools.

  • Importujte modul itertools a inicializujte seznam s lichým počtem prvků, jak je uvedeno v příkladech.
  • Převeďte seznam na iterovatelný objekt, abyste se vyhnuli opakování klíčů a hodnot v metodě zip_longest.
  • Nyní předejte iterovatelný objekt metodě zip_longest, přičemž parametr fillvalue nastavte na None. Funkce vrátí objekt zip.
    • Iterovatelný objekt musíme předat dvakrát, protože metoda zip_longest pracuje s páry klíč-hodnota ze dvou iterovatelných objektů. V našem případě jsou klíče i hodnoty obsaženy v jednom seznamu, proto předáváme stejný iterovatelný objekt dvakrát.
  • Převeďte objekt zip na slovník pomocí metody dict().
  • Vytiskněte výsledek.
# import modulu
import itertools

# seznam s lichým počtem prvků
plain_list = ['a', 'A', 'b', 'B', 'c', 'C', 'd']

# převod na iterovatelný objekt
plain_list_iter = iter(plain_list)

# vytvoření objektu zip_longest
plain_list_dict_object = itertools.zip_longest(plain_list_iter, plain_list_iter, fillvalue=None)

# převod objektu zip_longest na slovník pomocí dict()
plain_list_dict = dict(plain_list_dict_object)

# výpis výsledku
print(plain_list_dict)

Parametr fillvalue můžete nastavit na libovolnou hodnotu. Experimentujte a zjistěte, zda dostáváte výstup, který odpovídá příkladům.

Závěr

Doufám, že jste si užili proces transformace seznamu na slovník. Brzy se potkáme v dalším tutoriálu.

Dále se můžete naučit, jak v Pythonu sloučit seznamy.

Příjemné kódování 🙂

Líbil se Vám článek? Podělte se o něj se světem!