Če imate seznam, napišite program Python za pretvorbo podanega seznama v slovar, tako da imajo vsi lihi elementi ključ, sodi številski elementi pa vrednost. Odkar je Python slovar je neurejen, izhod je lahko v poljubnem vrstnem redu.
Primer
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> Pretvori seznam v slovarski Python
Spodaj so metode, ki jih bomo obravnavali v tem članku:
- Uporaba a zanka
- Uporaba dict Razumevanje
- Uporaba zip() Metoda
- Uporaba Lambda funkcija
- Uporaba Razumevanje seznama in Rezanje
- Uporaba Itertools
Pretvorite seznam v slovar z uporabo zanke
Ta metoda deluje tako, da inicializira prazno slovar in nato ponavljanje po seznamu v 2. koraku. V vsaki ponovitvi je par ključ-vrednost dodan v slovar z uporabo trenutnega elementa kot ključa in naslednjega elementa kot vrednosti. Nazadnje je kot rezultat vrnjen slovar.
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))> |
>
>
Izhod
{'a': 1, 'b': 2, 'c': 3}> Časovna zahtevnost: O(n), kjer je n dolžina vhodnega seznama.
Pomožni prostor: O(n), kjer je n dolžina vhodnega seznama.
Seznam pogovorov v slovarju z uporabo dict Comprehension
Za pretvorbo seznama v slovar lahko uporabimo narekovati razumevanje in naredite par ključ:vrednost zaporednih elementov. Nazadnje vnesite črke seznama v dikt vrsta.
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))> |
kaj je 10 od 100
>
>Izhod
{'a': 1, 'b': 2, 'c': 3}> Časovna zahtevnost: O(n), kjer je n dolžina vhodnega seznama.
Pomožni prostor: O(n), kjer je n dolžina vhodnega seznama.
Pretvarjanje seznama v slovar v peti zip() Metoda
Najprej ustvarite iterator in ga inicializirajte na spremenljivko 'it'. Nato uporabite zip metoda , da skupaj zipate ključe in vrednosti. Končno ga prenesite na dikt vrsta.
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))> |
>
>Izhod
{'a': 1, 'b': 2, 'c': 3}> Časovna zahtevnost: O(n), kjer je n dolžina vhodnega seznama a.
Pomožni prostor: O(n), kjer je n dolžina vhodnega seznama a.
Seznam pogovorov v slovarju z uporabo funkcije Lambda
Najprej ustvarite matriko ključev in vrednosti z uporabo rezanja matrike. Nato uporabite metoda zemljevida z lambda za oblikovanje matrike tuple s ključno vrednostjo paris. Končno ga tipkajte v tip dict.
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))> |
>
>Izhod
{'a': 1, 'c': 3, 'b': 2}> Časovna zahtevnost: O(n), kjer je n število parov ključ-vrednost v slovarju.
Pomožni prostor: O(n), za shranjevanje ključev in vrednosti v slovar.
Pretvarjanje seznama v slovar z uporabo seznama Razumevanje in rezanje
Rezina vnosni seznam, da dobite seznam ključev z uporabo lst[::2]. To bo vzelo vsak drugi element, začenši s prvim elementom seznama. Razrežite vhodni seznam, da dobite seznam vrednosti z uporabo lst[1::2]. To bo vzelo vsak drugi element od drugega elementa seznama. Ustvarite slovar z uporabo a slovarsko razumevanje ki ponavlja indekse seznama ključev in seznani vsak ključ z ustrezno vrednostjo s seznama vrednosti.
Vrnite dobljeni slovar.
Python3
algoritmi za razvrščanje spajanje razvrščanje
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}> |
>
>Izhod
{'a': 1, 'b': 2, 'c': 3}> Časovna zahtevnost: O(n)
Pomožni prostor: O(n).
Pretvorite seznam v slovar s pomočjo Itertools
Uvozite itertools modul .Uporabi zip_najdaljši() funkcijo za ustvarjanje seznama tulp iz prvotnega seznama. Ta funkcija bo združila elemente v pare, tudi če je dolžina seznama liha. Uporabite razumevanje slovarja, da ustvarite slovar iz seznama tupl. Vrnite slovar.
Spodaj je izvedba zgornjega pristopa:
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))> |
>
>Izhod
{'a': 1, 'b': 2, 'c': 3}> Časovna zahtevnost: O(n)
Pomožni prostor: O(n) (za shranjevanje seznama tupl)