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

Převést seznam na slovník v Pythonu není tak těžké.

Pojďme se podívat na různé způsoby, jak převést seznam do slovníku.

Intro

Než se pustíme do výukového programu, podívejme se na příklad převodu seznamu na slovník. Budeme mít seznam n-tic (každá n-tice se skládá ze dvou prvků) nebo jen seznam prvků. Vezmeme oba vstupy a převedeme je do slovníků.

Příklady:

V následujícím příkladu jsme vzali seznam n-tic a převedli jej do slovníku. První prvek každé n-tice jsme vzali jako klíč a druhý prvek jako hodnotu pro slovník.

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

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

V následujícím příkladu jsme vzali seznam prvků a převedli jej do slovníku s alternativními prvky jako klíčem a hodnotou. Klíči dáme null, pokud pro něj nezbyl žádný prvek jako klíč (pokud má seznam lichý počet prvků).

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

Výstup:{‚a‘: ‚A‘, ‚b‘: ‚B‘, ‚c‘: ‚C‘, ‚d‘: Žádný}

Cíl tutoriálu jsme viděli. A oba příklady probereme různými způsoby. Začněme prvním příkladem.

Seznam n-tic – slovník

Podívejme se, jak převést seznam n-tic do slovníku. Můžete zkusit napsat kód pomocí následujících kroků.

  • Inicializujte seznam n-tic pomocí fiktivních dat podle výše uvedených příkladů (ujistěte se, že každá n-tice v seznamu má přesně dva prvky).
  • Předá seznam n-tic metodě dict a výsledek uloží do nové proměnné.
  • To je vše, převedli jsme seznam n-tic do slovníku s jediným řádkem kódu.
# 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)

Výše uvedený výstup programu můžete otestovat jeho spuštěním. Dostanete výsledek, jak vidíme v příkladech.

Seznam – Slovník

Viděli jsme, jak převést seznam n-tic do slovníku, a v Pythonu je to jednoduchá věc. V této části uvidíme, jak převést prostý seznam na slovník.

Pro lepší přehlednost se podívejte na druhý příklad z první části tutoriálu.

Při psaní kódu pro druhý příklad postupujte podle níže uvedených kroků.

Pro prvek, který nebude mít žádnou hodnotu (seznam obsahující lichý počet prvků), jsme naplnili výchozí hodnotu None. K tomu musíme použít metodu nazvanou zip_longest z modulu itertools.

  • Importujte modul itertools a inicializujte seznam s lichým počtem prvků uvedených v příkladech.
  • Převeďte seznam na iterovatelný, abyste se vyhnuli opakování párů klíčů a hodnot v metodě zip_longest.
  • Nyní předejte iterovatelnou metodu zip_longest a fillvalue jako None. Vrátí objekt zip.
    • Iterovatelný musíme předat dvakrát, protože bere klíč a hodnotu ze dvou iterovatelných. V našem případě jsou klíče i hodnoty ve stejné iterovatelné. Takže před fillvalue to musíme projít dvakrát.
  • Převeďte objekt do slovníku Pythonu pomocí metody dict.
  • Vytiskněte výsledek.
# 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)

Můžete dát fillvalue, co chcete. Vyzkoušejte s ním různé věci. A spusťte kód, abyste zjistili, zda dostáváme přesný výstup, jak je uvedeno v příkladu, nebo ne.

Závěr

Doufám, že se vám převod seznamu na slovník líbil. Sejdeme se v dalším tutoriálu.

Dále se naučte, jak sloučit seznam v Pythonu.

Veselé kódování 🙂

Užili jste si čtení článku? Co takhle sdílet se světem?