logo

Convertiți o listă în dicționar Python

Având o listă, scrieți un program Python pentru a converti lista dată într-un dicționar astfel încât toate elementele impare să aibă cheia, iar elementele cu numere pare să aibă valoarea. Din momentul în care Piton dicționarul este neordonat, ieșirea poate fi în orice ordine.

Exemplu



  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>

Convertiți o listă în dicționar Python

Mai jos sunt metodele pe care le vom acoperi în acest articol:

Convertiți o listă într-un dicționar folosind o buclă

Această metodă funcționează prin inițializarea unui gol dicţionar iar apoi parcurgerea listei la pasul 2. În fiecare iterație, perechea cheie-valoare este adăugată la dicționar folosind elementul curent ca cheie și elementul următor ca valoare. În cele din urmă, dicționarul este returnat ca rezultat.

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

>

>

Ieșire

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

Complexitatea timpului: O(n), unde n este lungimea listei de intrare.
Spatiu auxiliar: O(n), unde n este lungimea listei de intrare.

List to Dictionary Conversation folosind dict Comprehensiunea

Pentru a converti o listă în dicționar, putem folosi înțelegerea dictului și faceți o pereche cheie:valoare de elemente consecutive. În cele din urmă, introduceți lista la dict tip.

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

>

descărcare sts

>

Ieșire

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

Complexitatea timpului: O(n), unde n este lungimea listei de intrare.
Spatiu auxiliar: O(n), unde n este lungimea listei de intrare.

Convertirea unei liste într-un dicționar în cânta zip() Metodă

Mai întâi creați un iterator și inițializați-l la variabila „it”. Apoi folosiți fermoar metodă , pentru a comprima cheile și valorile împreună. În cele din urmă, tipăriți-o dict tip.

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

>

>

Ieșire

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

Complexitatea timpului: O(n), unde n este lungimea listei de intrare a.
Spatiu auxiliar: O(n), unde n este lungimea listei de intrare a.

Listă în dicționar conversație folosind funcția Lambda

În primul rând, creați o matrice de chei și valori utilizând segmentarea matricei. Apoi utilizați metoda hărții cu lambda pentru a forma o matrice de tuplu cu valoarea cheie paris. În cele din urmă, tipăriți-o pentru a dict tip.

Piton




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

format string java
>

>

Ieșire

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

Complexitatea timpului: O(n), unde n este numărul de perechi cheie-valoare din dicționar.
Spatiu auxiliar: O(n), pentru a stoca cheile și valorile în dicționar.

Convertirea unei liste într-un dicționar folosind List Comprehension and Slicing

Felie lista de intrare pentru a obține o listă de chei utilizând lst[::2]. Acest lucru va lua fiecare al doilea element începând de la primul element al listei. Tăiați lista de intrare pentru a obține o listă de valori folosind lst[1::2]. Aceasta va lua fiecare al doilea element pornind de la al doilea element al listei. Creați un dicționar folosind a înțelegerea dicționarului care iterează peste indicii listei de chei și împerechează fiecare cheie cu valoarea ei corespunzătoare din lista de valori.

Întoarceți dicționarul rezultat.

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

>

>

Ieșire

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

Complexitatea timpului: Pe)
Spatiu auxiliar: Pe).

Convertiți o listă în dicționar folosind Itertools

Importă iertools modul .Folosește zip_longest() funcția de a crea o listă de tupluri din lista originală. Această funcție va grupa elementele în perechi, chiar dacă lungimea listei este impară. Utilizați o înțelegere a dicționarului pentru a crea un dicționar din lista de tupluri. Înapoiați dicționarul.

Mai jos este implementarea abordării de mai sus:

Python3


panda și numpy



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

>

>

Ieșire

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

Complexitatea timpului: Pe)
Spatiu auxiliar: O(n) (pentru a stoca lista de tupluri)