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ž parametrfillvalue
nastavte naNone
. Funkce vrátí objektzip
.- 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.
- Iterovatelný objekt musíme předat dvakrát, protože metoda
- Převeďte objekt
zip
na slovník pomocí metodydict()
. - 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!