logo

Pārvērst sarakstu par vārdnīcu Python

Dotā sarakstā uzrakstiet Python programmu, lai pārvērstu doto sarakstu vārdnīcā tā, lai visiem nepāra elementiem būtu atslēga un pāra skaitļu elementiem būtu vērtība. Kopš Python vārdnīca ir nesakārtota, izvade var būt jebkurā secībā.

Piemērs



  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>

Pārvērst sarakstu par vārdnīcu Python

Tālāk ir norādītas metodes, kuras mēs apskatīsim šajā rakstā:

Pārvērtiet sarakstu par vārdnīcu, izmantojot cilpu

Šī metode darbojas, inicializējot tukšu vārdnīca un pēc tam atkārtojiet sarakstu 2. darbībā. Katrā iterācijā vārdnīcai tiek pievienots atslēgas-vērtības pāris, izmantojot pašreizējo elementu kā atslēgu un nākamo elementu kā vērtību. Visbeidzot, vārdnīca tiek atgriezta kā rezultāts.

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

>

>

Izvade

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

Laika sarežģītība: O(n), kur n ir ievades saraksta garums.
Palīgtelpa: O(n), kur n ir ievades saraksta garums.

Saraksts vārdnīcas sarunām izmantojot dict Izpratne

Lai sarakstu pārvērstu vārdnīcā, mēs varam izmantot dikti izpratne un izveidojiet atslēgas:vērtības pāri no secīgiem elementiem. Visbeidzot ievadiet sarakstu ar burtiem dikt veids.

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

>

>

Izvade

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

Laika sarežģītība: O(n), kur n ir ievades saraksta garums.
Palīgtelpa: O(n), kur n ir ievades saraksta garums.

sql datu tipi

Saraksta pārvēršana vārdnīcā iekšā dziedāt zip() Metode

Vispirms izveidojiet iteratoru un inicializējiet to uz mainīgo “it”. Pēc tam izmantojiet rāvējslēdzējs metodi , lai saspiestu atslēgas un vērtības kopā. Visbeidzot ierakstiet to dikt veids.

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

>

>

Izvade

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

Laika sarežģītība: O(n), kur n ir ievades saraksta garums a.
Palīgtelpa: O(n), kur n ir ievades saraksta garums a.

Saraksts vārdnīcas sarunām, izmantojot Lambda funkciju

Vispirms izveidojiet atslēgu un vērtību masīvu, izmantojot masīva sadalīšanu. Pēc tam izmantojiet kartes metode ar lambda lai veidotu kortedža masīvu ar atslēgas vērtību paris. Visbeidzot ierakstiet to diktēšanas veidā.

Python




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

>

>

Izvade

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

Laika sarežģītība: O(n), kur n ir atslēgu-vērtību pāru skaits vārdnīcā.
Palīgtelpa: O(n), lai saglabātu atslēgas un vērtības vārdnīcā.

Saraksta pārvēršana vārdnīcā izmantojot saraksta izpratni un sagriešanu

Šķēle ievades sarakstu, lai iegūtu atslēgu sarakstu, izmantojot lst[::2]. Tas aizņems katru otro elementu, sākot no saraksta pirmā elementa. Sagrieziet ievades sarakstu, lai iegūtu vērtību sarakstu, izmantojot lst[1::2]. Tas aizņems katru otro elementu, sākot no saraksta otrā elementa. Izveidojiet vārdnīcu, izmantojot a vārdnīcas izpratne kas atkārto atslēgu saraksta indeksus un sapāro katru atslēgu ar tai atbilstošo vērtību no vērtību saraksta.

Atgrieziet iegūto vārdnīcu.

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

>

>

Izvade

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

Laika sarežģītība: O(n)
Palīgtelpa: O(n).

Pārvērtiet sarakstu vārdnīcā, izmantojot Itertools

Importēt itertorīki modulis .Izmantojiet zip_longest() funkciju, lai izveidotu kortežu sarakstu no sākotnējā saraksta. Šī funkcija sagrupēs elementus pa pāriem, pat ja saraksta garums ir nepāra.Izmantojiet vārdnīcas izpratni, lai izveidotu vārdnīcu no korešu saraksta.Atgriezt vārdnīcu.

Tālāk ir aprakstīta iepriekš minētās pieejas īstenošana.

Python3


Normalizācija datu bāzē



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

>

>

Izvade

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

Laika sarežģītība: O(n)
Palīgtelpa: O(n) (lai saglabātu kortežu sarakstu)