logo

Muunna luettelo Python-sanakirjaksi

Kun annetaan luettelo, kirjoita Python-ohjelma, joka muuntaa annetun luettelon sanakirjaksi siten, että kaikilla parittomilla elementeillä on avain ja parillisilla elementeillä on arvo. Koska Python sanakirja on järjestämätön, tulos voi olla missä tahansa järjestyksessä.

Esimerkki



  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>

Muunna luettelo Python-sanakirjaksi

Alla on menetelmät, joita käsittelemme tässä artikkelissa:

Muunna luettelo sanakirjaksi silmukan avulla

Tämä menetelmä toimii alustamalla tyhjä sanakirja ja iteroidaan sitten luettelon läpi vaiheessa 2. Jokaisessa iteraatiossa avain-arvo-pari lisätään sanakirjaan käyttämällä nykyistä elementtiä avaimena ja seuraavaa elementtiä arvona. Lopuksi sanakirja palautetaan tuloksena.

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

>

>

Lähtö

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

Aika monimutkaisuus: O(n), missä n on syöteluettelon pituus.
Aputila: O(n), missä n on syöteluettelon pituus.

Lista sanakirjakeskusteluun käyttämällä sanan ymmärtämistä

Voimme muuntaa luettelon sanakirjaksi sanele ymmärtäminen ja tee avain:arvo-pari peräkkäisistä elementeistä. Kirjoita lopuksi luettelo kirjaimella sanele tyyppi.

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

>

>

Lähtö

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

Aika monimutkaisuus: O(n), missä n on syöteluettelon pituus.
Aputila: O(n), missä n on syöteluettelon pituus.

Luettelon muuntaminen sanakirjaksi sisään laulaa postinumero() Menetelmä

Luo ensin iteraattori ja alusta se muuttujaksi 'it'. Käytä sitten postinumero menetelmä , zip avaimet ja arvot yhteen. Kirjoita lopuksi se sanele tyyppi.

Python 3




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

>

>

Lähtö

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

Aika monimutkaisuus: O(n), missä n on syöttölistan a pituus.
Aputila: O(n), missä n on syöttölistan a pituus.

Listaa sanakirjakeskusteluihin lambda-funktiolla

Luo ensin joukko avaimia ja arvoja käyttämällä taulukon viipalointia. Käytä sitten karttamenetelmä kanssa lambda muodostaa joukon monikko avainarvolla paris. Lopuksi kirjoita se sanelukirjoitukseen.

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

1 miljoonan numero
>

>

Lähtö

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

Aika monimutkaisuus: O(n), missä n on avainarvoparien lukumäärä sanakirjassa.
Aputila: O(n), tallentaaksesi avaimet ja arvot sanakirjaan.

Luettelon muuntaminen sanakirjaksi käyttämällä luettelon ymmärtämistä ja viipalointia

Viipale syöttöluetteloa saadaksesi näppäinluettelon käyttämällä lst[::2]. Tämä ottaa joka toisen elementin luettelon ensimmäisestä elementistä alkaen. Viipaloi syöteluettelo saadaksesi arvoluettelon komennolla lst[1::2]. Tämä ottaa joka toisen elementin luettelon toisesta elementistä alkaen. Luo sanakirja käyttämällä a sanakirjan ymmärtäminen joka toistuu avainluettelon indeksien yli ja liittää jokaisen avaimen sen vastaavaan arvoon arvoluettelosta.

Palauta tuloksena oleva sanakirja.

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

>

>

Lähtö

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

Aika monimutkaisuus: Päällä)
Aputila: Päällä).

Muunna luettelo sanakirjaksi Itertoolsin avulla

Tuo itert-työkalut moduuli .Käytä zip_longest() toimintoa luodaksesi luettelon monista alkuperäisestä luettelosta. Tämä toiminto ryhmittelee elementit pareiksi, vaikka luettelon pituus olisi pariton.Luo sanakirja monikkoluettelosta sanakirjan ymmärtämisen avulla.Palauta sanakirja.

Alla on yllä olevan lähestymistavan toteutus:

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

>

>

Lähtö

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

Aika monimutkaisuus: Päällä)
Aputila: O(n) (tallentaa monikkoluettelon)