Donada una llista, escriviu un programa Python per convertir la llista donada en un diccionari de manera que tots els elements senars tinguin la clau i els elements parells el valor. Des del Python El diccionari no està ordenat, la sortida pot estar en qualsevol ordre.
Exemple
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> Converteix una llista en diccionari Python
A continuació es mostren els mètodes que tractarem en aquest article:
- Utilitzant a bucle
- Utilitzant dict Comprensió
- Utilitzant zip() Mètode
- Utilitzant Funció Lambda
- Utilitzant Comprensió de llistes i Tallar
- Utilitzant Itertools
Converteix una llista en un diccionari mitjançant un bucle
Aquest mètode funciona inicialitzant un buit diccionari i després iterant per la llista del pas 2. En cada iteració, el parell clau-valor s'afegeix al diccionari utilitzant l'element actual com a clau i l'element següent com a valor. Finalment, es retorna el diccionari com a resultat.
Python 3
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))> |
>
>
Sortida
{'a': 1, 'b': 2, 'c': 3}> Complexitat temporal: O(n), on n és la longitud de la llista d'entrada.
Espai auxiliar: O(n), on n és la longitud de la llista d'entrada.
Conversa de llista al diccionari utilitzant la comprensió dictatorial
Per convertir una llista en diccionari, podem utilitzar comprensió dictatorial i feu un parell clau:valor d'elements consecutius. Finalment, escriviu la llista a dictat tipus.
Python 3
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))> |
>
>Sortida
{'a': 1, 'b': 2, 'c': 3}> Complexitat temporal: O(n), on n és la longitud de la llista d'entrada.
Espai auxiliar: O(n), on n és la longitud de la llista d'entrada.
Convertir una llista en un diccionari en cantar zip() Mètode
Primer creeu un iterador i inicialitzeu-lo a la variable 'it'. A continuació, utilitzeu cremallera mètode , per comprimir claus i valors junts. Finalment escriviu-lo dictat tipus.
Python 3
conjunt mecanografiat
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))> |
>
>Sortida
{'a': 1, 'b': 2, 'c': 3}> Complexitat temporal: O(n), on n és la longitud de la llista d'entrada a.
Espai auxiliar: O(n), on n és la longitud de la llista d'entrada a.
Conversa de llista a diccionari mitjançant la funció Lambda
En primer lloc, creeu una matriu de claus i valors mitjançant el tall de matriu. A continuació, utilitzeu el mètode del mapa amb lambda per formar una matriu de tupla amb valor clau paris. Finalment, escriviu-lo per dictar.
Python
python o
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))> |
>
>Sortida
{'a': 1, 'c': 3, 'b': 2}> Complexitat temporal: O(n), on n és el nombre de parells clau-valor al diccionari.
Espai auxiliar: O(n), per emmagatzemar les claus i els valors al diccionari.
Convertir una llista en un diccionari utilitzant la comprensió de llistes i el tall
Tallar la llista d'entrada per obtenir una llista de claus utilitzant lst[::2]. Això prendrà cada segon element començant des del primer element de la llista. Repartiu la llista d'entrada per obtenir una llista de valors utilitzant lst[1::2]. Això prendrà cada segon element a partir del segon element de la llista. Crea un diccionari utilitzant a comprensió del diccionari que itera sobre els índexs de la llista de claus i emparella cada clau amb el seu valor corresponent de la llista de valors.
Retorna el diccionari resultant.
Python 3
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}> |
>
>Sortida
{'a': 1, 'b': 2, 'c': 3}> Complexitat temporal: O(n)
Espai auxiliar: O(n).
Converteix una llista en diccionari amb Itertools
Importa el itertools mòdul .Utilitzar el zip_longest() funció per crear una llista de tuples a partir de la llista original. Aquesta funció agruparà els elements en parells, encara que la llargada de la llista sigui estranya. Utilitzeu una comprensió de diccionari per crear un diccionari a partir de la llista de tuples. Retorneu el diccionari.
A continuació es mostra la implementació de l'enfocament anterior:
Python 3
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))> |
>
>Sortida
{'a': 1, 'b': 2, 'c': 3}> Complexitat temporal: O(n)
Espai auxiliar: O(n) (per emmagatzemar la llista de tuples)