Zadaný zoznam napíšte program Python, ktorý prevedie daný zoznam na slovník tak, aby všetky nepárne prvky mali kľúč a prvky párneho čísla mali hodnotu. Keďže Python slovník nie je usporiadaný, výstup môže byť v ľubovoľnom poradí.
Prí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> Previesť zoznam na slovníkový Python
Nižšie sú uvedené metódy, ktorým sa budeme venovať v tomto článku:
- Pomocou a slučka
- Použitím diktovať Porozumenie
- Použitím PSČ() Metóda
- Použitím Funkcia lambda
- Použitím Porozumenie zoznamu a Krájanie
- Použitím Itertools
Preveďte zoznam na slovník pomocou slučky
Táto metóda funguje inicializáciou prázdneho slovník a potom iterovanie cez zoznam v kroku 2. V každej iterácii sa pár kľúč – hodnota pridá do slovníka pomocou aktuálneho prvku ako kľúča a ďalšieho prvku ako hodnoty. Nakoniec sa ako výsledok vráti 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))> |
>
internetový protokol smtp
>
Výkon
{'a': 1, 'b': 2, 'c': 3}> Časová zložitosť: O(n), kde n je dĺžka zoznamu vstupov.
Pomocný priestor: O(n), kde n je dĺžka zoznamu vstupov.
Zoznam do slovníkovej konverzácie pomocou diktátu Porozumenie
Na konverziu zoznamu na slovník môžeme použiť porozumenie diktátu a vytvorte pár kľúč:hodnota po sebe idúcich prvkov. Nakoniec napíšte do zoznamu diktát typu.
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ýkon
{'a': 1, 'b': 2, 'c': 3}> Časová zložitosť: O(n), kde n je dĺžka zoznamu vstupov.
Pomocný priestor: O(n), kde n je dĺžka zoznamu vstupov.
Konverzia zoznamu na slovník v spievať PSČ() Metóda
Najprv vytvorte iterátor a inicializujte ho na premennú „it“. Potom použite PSČ metóda na zips kľúčov a hodnôt. Nakoniec to napíšte diktát typu.
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ýkon
python zapíšte json do súboru
{'a': 1, 'b': 2, 'c': 3}> Časová zložitosť: O(n), kde n je dĺžka vstupného zoznamu a.
Pomocný priestor: O(n), kde n je dĺžka vstupného zoznamu a.
Zoznam do slovníkovej konverzácie pomocou funkcie Lambda
Najprv vytvorte pole kľúčov a hodnôt pomocou segmentovania poľa. Potom použite mapová metóda s lambda vytvoriť pole n-tice s kľúčovou hodnotou paris. Nakoniec to pretypujte na diktát.
Python
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ýkon
{'a': 1, 'c': 3, 'b': 2}> Časová zložitosť: O(n), kde n je počet párov kľúč – hodnota v slovníku.
Pomocný priestor: O(n), na uloženie kľúčov a hodnôt do slovníka.
Konverzia zoznamu na slovník pomocou funkcie List Comprehension and Slicing
Plátok zoznam vstupov, aby ste získali zoznam kľúčov pomocou lst[::2]. Toto zaberie každý druhý prvok počnúc prvým prvkom zoznamu. Rozdeľte vstupný zoznam, aby ste získali zoznam hodnôt pomocou lst[1::2]. To bude trvať každý druhý prvok počnúc druhým prvkom zoznamu. Vytvorte slovník pomocou a porozumenie slovníka ktorý iteruje cez indexy zoznamu kľúčov a spáruje každý kľúč s jeho zodpovedajúcou hodnotou zo zoznamu hodnôt.
Vráť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ýkon
{'a': 1, 'b': 2, 'c': 3}> Časová zložitosť: O(n)
Pomocný priestor: O(n).
Preveďte zoznam na slovník pomocou Itertools
Importovať itertools modul .Použi zip_longest() funkcia na vytvorenie zoznamu n-tic z pôvodného zoznamu. Táto funkcia zoskupí prvky do párov, aj keď je dĺžka zoznamu nepárna. Na vytvorenie slovníka zo zoznamu n-tic použite porozumenie slovníka. Vráťte slovník.
Nižšie je uvedená implementácia vyššie uvedeného prí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))> |
unix vs windows
>
>Výkon
{'a': 1, 'b': 2, 'c': 3}> Časová zložitosť: O(n)
Pomocný priestor: O(n) (na uloženie zoznamu n-tic)