logo

Converteix una llista en diccionari Python

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:

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)