logo

Konvertuokite sąrašą į Python žodyną

Pateikę sąrašą, parašykite Python programą, kuri konvertuotų pateiktą sąrašą į žodyną taip, kad visi nelyginiai elementai turėtų raktą, o lyginio skaičiaus elementai – reikšmę. Nuo pat Python žodynas yra netvarkingas, išvestis gali būti bet kokia tvarka.

Pavyzdys



  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>

Konvertuokite sąrašą į Python žodyną

Žemiau pateikiami metodai, kuriuos aptarsime šiame straipsnyje:

Konvertuokite sąrašą į žodyną naudodami kilpą

Šis metodas veikia inicijuojant tuščią žodynas ir tada kartoti sąrašą 2 veiksme. Kiekvienoje iteracijoje rakto ir reikšmės pora įtraukiama į žodyną, naudojant dabartinį elementą kaip raktą ir kitą elementą kaip reikšmę. Galiausiai kaip rezultatas grąžinamas žodynas.

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

sąrašą kaip masyvą

>

>

Išvestis

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

Laiko sudėtingumas: O(n), kur n yra įvesties sąrašo ilgis.
Pagalbinė erdvė: O(n), kur n yra įvesties sąrašo ilgis.

Žodyno pokalbio sąrašas naudojant diktą Supratimas

Norėdami konvertuoti sąrašą į žodyną, galime naudoti diktuoti supratimą ir sudaryti raktas:vertė porą iš eilės einančių elementų. Galiausiai surinkite sąrašą į diktatas tipo.

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

>

>

Išvestis

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

Laiko sudėtingumas: O(n), kur n yra įvesties sąrašo ilgis.
Pagalbinė erdvė: O(n), kur n yra įvesties sąrašo ilgis.

Sąrašo konvertavimas į žodyną in dainuoti zip () Metodas

Pirmiausia sukurkite iteratorių ir inicijuokite jį į kintamąjį „it“. Tada naudokite užtrauktukas metodas , norėdami sutraukti raktus ir reikšmes kartu. Galiausiai įveskite jį į diktatas tipo.

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

>

>

Išvestis

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

Laiko sudėtingumas: O(n), kur n yra įvesties sąrašo a ilgis.
Pagalbinė erdvė: O(n), kur n yra įvesties sąrašo a ilgis.

Žodyno pokalbių sąrašas naudojant Lambda funkciją

Pirmiausia sukurkite raktų ir reikšmių masyvą naudodami masyvo pjaustymą. Tada naudokite žemėlapio metodas su lambda sudaryti sektos masyvą su rakto reikšme paris. Galiausiai įveskite jį į diktavimo tipą.

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

>

>

Išvestis

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

Laiko sudėtingumas: O(n), kur n yra raktų ir reikšmių porų skaičius žodyne.
Pagalbinė erdvė: O(n), raktams ir reikšmėms saugoti žodyne.

Sąrašo konvertavimas į žodyną naudojant sąrašo supratimą ir pjaustymą

Supjaustykite įvesties sąrašą, kad gautumėte raktų sąrašą naudodami lst[::2]. Tai imsis kas antro elemento, pradedant nuo pirmojo sąrašo elemento. Supjaustykite įvesties sąrašą, kad gautumėte reikšmių sąrašą naudodami lst[1::2]. Tai užims kas antrą elementą, pradedant nuo antrojo sąrašo elemento. Sukurkite žodyną naudodami a žodyno supratimas kuris kartojasi per raktų sąrašo indeksus ir suporuoja kiekvieną raktą su atitinkama verte iš reikšmių sąrašo.

Grąžinkite gautą žodyną.

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

>

>

Išvestis

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

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n).

Konvertuokite sąrašą į žodyną naudodami Itertools

Importuoti iterto įrankiai modulis .Naudoti zip_longest() funkcija sukurti eilučių sąrašą iš pradinio sąrašo. Ši funkcija sugrupuos elementus į poras, net jei sąrašo ilgis yra nelyginis. Norėdami sukurti žodyną iš eilučių sąrašo, naudokite žodyno supratimą.Grąžinkite žodyną.

Toliau pateikiamas pirmiau minėto metodo įgyvendinimas:

Python3




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

>

>

Išvestis

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

Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n) (saugoti kortelių sąrašą)