logo

Konverter en liste til Dictionary Python

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:

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)