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:
- Folosind un buclă
- Folosind Dict Intelegerea
- Folosind zip() Metodă
- Folosind Funcția Lambda
- Folosind Înțelegerea listei și Tăierea
- Folosind Itertools
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)