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:
- Ved hjælp af en sløjfe
- Ved brug af dikt Forståelse
- Ved brug af zip() Metode
- Ved brug af Lambda funktion
- Ved brug af Listeforståelse og Udskæring
- Ved brug af Itertools
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)