logo

Převeďte seznam na slovníkový Python

Máte-li seznam, napište program Python, který daný seznam převede na slovník tak, aby všechny liché prvky měly klíč a prvky sudého čísla hodnotu. Vzhledem k tomu, Krajta slovník je neuspořádaný, výstup může být v libovolném pořadí.

Příklad



  Input :    ['a', 1, 'b', 2, 'c', 3]   Output:   {'a': 1, 'b': 2, 'c': 3}   Explaination  : In the input we have a list of element which then is conerted into key value pairs of dictonary in the output>

Převeďte seznam na slovníkový Python

Níže jsou uvedeny metody, které pokryjeme v tomto článku:

Převeďte seznam na slovník pomocí smyčky

Tato metoda funguje tak, že se inicializuje prázdný slovník a poté iterování seznamu v kroku 2. V každé iteraci je pár klíč-hodnota přidán do slovníku pomocí aktuálního prvku jako klíče a dalšího prvku jako hodnoty. Nakonec se jako výsledek vrátí slovník.

Python3








def> convert(lst):> >res_dict>=> {}> >for> i>in> range>(>0>,>len>(lst),>2>):> >res_dict[lst[i]]>=> lst[i>+> 1>]> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))>

>

>

Výstup

{'a': 1, 'b': 2, 'c': 3}>

Časová složitost: O(n), kde n je délka seznamu vstupů.
Pomocný prostor: O(n), kde n je délka seznamu vstupů.

Seznam do slovníkové konverzace pomocí diktátu Comprehension

Chcete-li převést seznam na slovník, můžeme použít diktát porozumění a vytvořte pár klíč:hodnota po sobě jdoucích prvků. Nakonec seznam napište diktát typ.

Python3




def> Convert(lst):> >res_dct>=> {lst[i]: lst[i>+> 1>]>for> i>in> range>(>0>,>len>(lst),>2>)}> >return> res_dct> > # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

Výstup

{'a': 1, 'b': 2, 'c': 3}>

Časová složitost: O(n), kde n je délka seznamu vstupů.
Pomocný prostor: O(n), kde n je délka seznamu vstupů.

Převod seznamu na slovník v zpívat zip() Metoda

Nejprve vytvořte iterátor a inicializujte jej do proměnné „it“. Poté použijte zip metoda , pro zip klíče a hodnoty dohromady. Nakonec to přetypujte diktát typ.

Python3




def> Convert(a):> >it>=> iter>(a)> >res_dct>=> dict>(>zip>(it, it))> >return> res_dct> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

Výstup

{'a': 1, 'b': 2, 'c': 3}>

Časová složitost: O(n), kde n je délka vstupního seznamu a.
Pomocný prostor: O(n), kde n je délka vstupního seznamu a.

Seznam do slovníkové konverzace pomocí funkce Lambda

Nejprve vytvořte pole klíčů a hodnot pomocí segmentování pole. Poté použijte mapová metoda s lambda vytvořit pole n-tic s klíčovou hodnotou paříž. Nakonec to přetypujte na typ diktátu.

Krajta




java tutoriály
def> Convert(lst):> >res_dct>=> map>(>lambda> i: (lst[i], lst[i>+>1>]),>range>(>len>(lst)>->1>)[::>2>])> >return> dict>(res_dct)> # Driver code> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(Convert(lst))>

>

>

Výstup

{'a': 1, 'c': 3, 'b': 2}>

Časová složitost: O(n), kde n je počet párů klíč–hodnota ve slovníku.
Pomocný prostor: O(n), pro uložení klíčů a hodnot do slovníku.

Převod seznamu na slovník pomocí funkce List Comprehension and Slicing

Plátek seznam vstupů, abyste získali seznam klíčů pomocí lst[::2]. To bude trvat každý druhý prvek počínaje prvním prvkem seznamu. Rozdělte vstupní seznam, abyste získali seznam hodnot pomocí lst[1::2]. To bude trvat každý druhý prvek počínaje druhým prvkem seznamu. Vytvořte slovník pomocí a porozumění slovníku který iteruje přes indexy seznamu klíčů a spáruje každý klíč s jeho odpovídající hodnotou ze seznamu hodnot.

Vraťte výsledný slovník.

Python3




def> convert(lst):> >keys>=> lst[::>2>]># slice the list to get keys> >values>=> lst[>1>::>2>]># slice the list to get values> >res_dict>=> {keys[i]: values[i]>for> i>in> range>(>len>(keys))}> >return> res_dict> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))># {'a': 1, 'b': 2, 'c': 3}>

>

>

Výstup

{'a': 1, 'b': 2, 'c': 3}>

Časová složitost: Na)
Pomocný prostor: Na).

Převeďte seznam na slovník pomocí Itertools

Importujte itertools modul .Použijte zip_longest() funkce pro vytvoření seznamu n-tic z původního seznamu. Tato funkce seskupí prvky do dvojic, i když je délka seznamu lichá. K vytvoření slovníku ze seznamu n-tic použijte porozumění slovníku. Vraťte slovník.

Níže je uvedena implementace výše uvedeného přístupu:

Python3




import> itertools> def> convert(lst):> >pairs>=> itertools.zip_longest(>*>[>iter>(lst)]>*> 2>, fillvalue>=>None>)> >dct>=> {key: value>for> key, value>in> pairs}> >return> dct> lst>=> [>'a'>,>1>,>'b'>,>2>,>'c'>,>3>]> print>(convert(lst))>

>

>

Výstup

{'a': 1, 'b': 2, 'c': 3}>

Časová složitost: Na)
Pomocný prostor: O(n) (pro uložení seznamu n-tic)