logo

Konverter en liste til ordbogspython

Givet en liste, skriv et Python-program for at konvertere den givne liste til en ordbog, således at alle de ulige elementer har nøglen, og lige talselementer har værdien. Siden Python ordbogen er uordnet, output kan være i enhver rækkefø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 ordbogspython

Nedenfor er de metoder, vi vil dække i denne artikel:



Konverter en liste til en ordbog ved hjælp af en løkke

Denne metode fungerer ved at initialisere en tom ordbog og derefter gentage listen i trin 2. I hver iteration tilføjes nøgleværdi-parret til ordbogen ved at bruge det aktuelle element som nøglen og det næste element som værdien. Til sidst returneres ordbogen som resultat.

Python3




eksekver script shell
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))>

>

>

Produktion

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

Tidskompleksitet: O(n), hvor n er længden af ​​inputlisten.
Hjælpeplads: O(n), hvor n er længden af ​​inputlisten.

Liste til ordbogssamtale ved hjælp af diktatforståelse

For at konvertere en liste til ordbog, kan vi bruge diktat forståelse og lav et nøgle:værdi-par af på hinanden følgende elementer. Skriv til sidst 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))>

>

>

Produktion

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

Tidskompleksitet: O(n), hvor n er længden af ​​inputlisten.
Hjælpeplads: O(n), hvor n er længden af ​​inputlisten.

Konvertering af en liste til en ordbog i synge zip() Metode

Opret først en iterator, og initialiser den til variabel 'det'. Brug derefter lynlås metode , for at zippe nøgler og værdier sammen. Endelig typecast det til dikt type.

Python3

skifte 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))>

>

>

Produktion

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

Tidskompleksitet: O(n), hvor n er længden af ​​inputlisten a.
Hjælpeplads: O(n), hvor n er længden af ​​inputlisten a.

Liste til ordbogssamtale ved hjælp af Lambda-funktionen

Først skal du oprette et array af nøgler og værdier ved at bruge array slicing. Brug derefter kort metode med lambda at danne række af tuple med nøgleværdi paris. Til sidst typecast det 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))>

>

>

Produktion

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

Tidskompleksitet: O(n), hvor n er antallet af nøgleværdi-par i ordbogen.
Hjælpeplads: O(n), for at gemme nøglerne og værdierne i ordbogen.

teske størrelse

Konvertering af en liste til en ordbog ved hjælp af listeforståelse og udskæring

Skive indtastningslisten for at få en liste over nøgler ved at bruge lst[::2]. Dette vil tage hvert andet element fra det første element i listen. Skær inputlisten i skiver for at få en liste med værdier ved at bruge lst[1::2]. Dette vil tage hvert andet element fra det andet element på listen. Opret en ordbog ved at bruge en ordbogsforståelse der itererer over nøglelistens indekser og parrer hver nøgle med dens tilsvarende værdi fra værdilisten.

Returner den resulterende ordbog.

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}>

>

>

Produktion

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

Tidskompleksitet: På)
Hjælpeplads: På).

Konverter en liste til ordbog ved hjælp af Itertools

Importer itertools modul .Brug zip_longest() funktion til at oprette en liste over tupler fra den originale liste. Denne funktion vil gruppere elementerne i par, selvom længden af ​​listen er ulige. Brug en ordbogsforståelse til at oprette en ordbog fra listen over tupler. Returner ordbogen.

Nedenfor er implementeringen af ​​ovenstående tilgang:

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))>

>

rydde npm cache

>

Produktion

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

Tidskompleksitet: På)
Hjælpeplads: O(n) (for at gemme listen over tupler)