Gitt en liste, skriv et Python-program for å konvertere den gitte listen til en ordbok slik at alle oddetallselementene har nøkkelen, og partallselementene har verdien. Siden Python ordboken er uordnet, utdataene kan være i hvilken som helst rekkefølge.
Eksempel
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> Konverter en liste til Dictionary Python
Nedenfor er metodene vi vil dekke i denne artikkelen:
- Bruker en Løkke
- Ved hjelp av dikt Forståelse
- Ved hjelp av glidelås() Metode
- Ved hjelp av Lambda funksjon
- Ved hjelp av Listeforståelse og Skjæring
- Ved hjelp av Itertools
Konverter en liste til en ordbok ved hjelp av en løkke
Denne metoden fungerer ved å initialisere en tom ordbok og deretter iterere gjennom listen i trinn 2. I hver iterasjon legges nøkkelverdi-paret til ordboken ved å bruke det gjeldende elementet som nøkkelen og det neste elementet som verdien. Til slutt returneres ordboken som resultat.
Python3
gratis ipconfig
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))> |
>
>
Produksjon
{'a': 1, 'b': 2, 'c': 3}> Tidskompleksitet: O(n), hvor n er lengden på inndatalisten.
Ekstra plass: O(n), hvor n er lengden på inndatalisten.
Liste til ordboksamtale ved hjelp av diktforståelse
For å konvertere en liste til ordbok, kan vi bruke dikte forståelse og lag et nøkkel:verdi-par med påfølgende elementer. Til slutt skriver du listen til dikt type.
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))> |
>
>Produksjon
{'a': 1, 'b': 2, 'c': 3}> Tidskompleksitet: O(n), hvor n er lengden på inndatalisten.
Ekstra plass: O(n), hvor n er lengden på inndatalisten.
Konvertere en liste til en ordbok i synge glidelås() Metode
Opprett først en iterator, og initialiser den til variabel 'det'. Bruk deretter glidelås metode , for å zippe nøkler og verdier sammen. Endelig typecast den til dikt type.
Python3
bytte java-programmering
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))> |
>
>Produksjon
{'a': 1, 'b': 2, 'c': 3}> Tidskompleksitet: O(n), hvor n er lengden på inndatalisten a.
Ekstra plass: O(n), hvor n er lengden på inndatalisten a.
Liste til ordboksamtale ved hjelp av Lambda-funksjonen
Først oppretter du en rekke nøkler og verdier ved å bruke array-slicing. Bruk deretter kartmetode med lambda å danne en rekke tuppel med nøkkelverdi paris. Til slutt typecast den til dikttype.
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))> |
>
>Produksjon
{'a': 1, 'c': 3, 'b': 2}> Tidskompleksitet: O(n), hvor n er antall nøkkelverdi-par i ordboken.
Ekstra plass: O(n), for å lagre nøklene og verdiene i ordboken.
teskje størrelse
Konvertere en liste til en ordbok ved å bruke listeforståelse og skjæring
Skive inndatalisten for å få en liste over nøkler ved å bruke lst[::2]. Dette vil ta annethvert element fra det første elementet i listen. Del opp inndatalisten for å få en liste med verdier ved å bruke lst[1::2]. Dette vil ta hvert andre element fra det andre elementet i listen. Lag en ordbok ved å bruke en ordbokforståelse som itererer over indeksene til nøkkellisten og parer hver nøkkel med dens tilsvarende verdi fra verdilisten.
Returner den resulterende ordboken.
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}> |
>
>Produksjon
{'a': 1, 'b': 2, 'c': 3}> Tidskompleksitet: På)
Ekstra plass: På).
Konverter en liste til ordbok ved hjelp av Itertools
Importer itertools modul .Bruke zip_longest() funksjon for å lage en liste over tuples fra den opprinnelige listen. Denne funksjonen vil gruppere elementene i par, selv om lengden på listen er rar.Bruk en ordbokforståelse for å lage en ordbok fra listen over tupler. Returner ordboken.
Nedenfor er implementeringen av tilnærmingen ovenfor:
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))> |
>
tømme npm cache
>Produksjon
{'a': 1, 'b': 2, 'c': 3}> Tidskompleksitet: På)
Ekstra plass: O(n) (for å lagre listen over tupler)