logo

Konvertera en lista till Dictionary Python

Givet en lista, skriv ett Python-program för att konvertera den givna listan till en ordbok så att alla udda element har nyckeln och jämna nummerelement har värdet. Sedan Pytonorm ordboken är oordnad, utdata kan vara i valfri ordning.

Exempel



  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>

Konvertera en lista till Dictionary Python

Nedan är metoderna som vi kommer att täcka i den här artikeln:

försök fånga i java

Konvertera en lista till en ordbok med en loop

Denna metod fungerar genom att initiera en tom lexikon och sedan iterera genom listan i steg 2. I varje iteration läggs nyckel-värdeparet till i ordboken med det aktuella elementet som nyckel och nästa element som värdet. Slutligen returneras ordboken som resultat.

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

>

>

Produktion

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

Tidskomplexitet: O(n), där n är längden på inmatningslistan.
Extra utrymme: O(n), där n är längden på inmatningslistan.

Lista till ordbokssamtal använder diktförståelse

För att konvertera en lista till ordbok kan vi använda diktförståelse och gör ett nyckel:värde-par av på varandra följande element. Skriv slutligen listan till dikt typ.

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

Tidskomplexitet: O(n), där n är längden på inmatningslistan.
Extra utrymme: O(n), där n är längden på inmatningslistan.

Konvertera en lista till en ordbok i sjunga blixtlås() Metod

Skapa först en iterator och initiera den till variabeln 'det'. Använd sedan blixtlås metod , för att zippa ihop nycklar och värden. Äntligen typcasta den till dikt typ.

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

>

>

Produktion

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

Tidskomplexitet: O(n), där n är längden på inmatningslistan a.
Extra utrymme: O(n), där n är längden på inmatningslistan a.

Lista till ordbokskonversation med Lambda-funktionen

Skapa först en array av nycklar och värden genom att använda array slicing. Använd sedan kartmetoden med lambda att bilda array av tupel med nyckelvärde paris. Äntligen typcasta den till dict-typ.

Pytonorm




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

Tidskomplexitet: O(n), där n är antalet nyckel-värdepar i ordboken.
Extra utrymme: O(n), för att lagra nycklar och värden i ordboken.

Konvertera en lista till en ordbok med hjälp av Listförståelse och Slicing

Skiva inmatningslistan för att få en lista med nycklar genom att använda lst[::2]. Detta tar vartannat element med början från det första elementet i listan. Dela in inmatningslistan för att få en lista med värden genom att använda lst[1::2]. Detta tar vartannat element från det andra elementet i listan. Skapa en ordbok med hjälp av en ordboksförståelse som itererar över nyckellistans index och parar varje nyckel med dess motsvarande värde från värdelistan.

Returnera den resulterande 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}>

>

>

Produktion

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

Tidskomplexitet: På)
Extra utrymme: På).

Konvertera en lista till ordbok med Itertools

Importera itertools modul .Använd zip_longest() funktion för att skapa en lista med tuplar från den ursprungliga listan. Den här funktionen kommer att gruppera elementen i par, även om längden på listan är udda. Använd en ordboksförståelse för att skapa en ordbok från listan över tupler. Returnera ordboken.

Nedan är implementeringen av ovanstående tillvägagångssätt:

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

>

>

Produktion

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

Tidskomplexitet: På)
Extra utrymme: O(n) (för att lagra listan över tupler)