Python | Hanki sanakirjaavaimet luettelona
Kun olet antanut sanakirjan, kirjoita Python-ohjelma saadaksesi sanakirjan avaimet luettelona.
Esimerkkejä:
Input : {1:'a', 2:'b', 3:'c'} Output : [1, 2, 3] Input : {'A' : 'ant', 'B' : 'ball'} Output : ['A', 'B'] Tapa 1: Hanki sanakirjaavaimet luettelona käyttämällä dict.keys()
Python list()-funktio ottaa minkä tahansa iteroitavan parametriksi ja palauttaa luettelon. Pythonissa iteroitava on objekti, jonka yli voi iteroida.
Python 3
mydict> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> keysList> => list> (mydict.keys())> print> (keysList)> |
Lähtö
[1, 2, 3]
Ohjelman aikamonimutkaisuus on O(n), missä n on avainten lukumäärä sanakirjassa.
Ohjelman monimutkaisuus on O(n), missä n on avainten lukumäärä sanakirjassa. Tämä johtuu siitä, että ohjelma luo uuden listaobjektin, jossa on sama määrä elementtejä kuin sanakirjan avaimet, mikä vaatii lisämuistia.
Tapa 2: Hanki sanakirjaavaimet luettelona For Loop ja append -menetelmällä
Tässä menetelmässä toistamme jokaisen avaimen dict.keys() -funktio ja liittää ne uuteen luetteloon, joka on nimetty luetteloksi.
Python 3
# Python program to get> # dictionary keys as list> def> getList(> dict> ):> > list> => []> > for> key> in> dict> .keys():> > list> .append(key)> > > return> list> > # Driver program> dict> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> print> (getList(> dict> ))> |
Lähtö
[1, 2, 3]
Aika monimutkaisuus: O(n)
Aputila: O(n)
Tapa 3: Sanakirjaavaimet luetteloon käyttämällä luettelon ymmärtämistä
Täällä yritämme lyhentää koodiamme käyttämällä Pythonin luettelon ymmärtämistä.
Python 3
dict> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> keysList> => [key> for> key> in> dict> ]> print> (keysList)> |
Lähtö
[1, 2, 3]
Aika monimutkaisuus: O(n), missä n on avainarvoparien lukumäärä sanakirjassa.
Aputila: O(n), avainten ja arvojen tallentamiseen sanakirjaan.
Tapa 4: Sanakirjaavaimet luetteloitavaksi käyttämällä Pakkauksen purkamista *
Pakkauksen purkaminen *:lla toimii minkä tahansa iteroitavan objektin kanssa, ja koska sanakirjat palauttavat avaimensa läpi toistettaessa, voit helposti luoda luettelon käyttämällä sitä listaliteraalissa.
Python 3
def> getList(> dict> ):> > return> [> *> dict> ]> # Driver program> dict> => {> 'a'> :> 'Geeks'> ,> 'b'> :> 'For'> ,> 'c'> :> 'geeks'> }> print> (getList(> dict> ))> |
Lähtö:
['a', 'b', 'c']
Aika monimutkaisuus: O(N)
Aputila: O(N)
Menetelmä 5: Sanakirjaavaimet luetteloon itemgetterillä
Operaattorimoduulin itemgetter palauttaa kutsuttavan objektin, joka hakee kohteen operandistaan käyttämällä operandin __getitem__ () menetelmä. Tämä menetelmä kartoitetaan tiedostoon dict.items() ja sitten tyyppilähetetään luetteloon.
Python 3
from> operator> import> itemgetter> def> getList(> dict> ):> > return> list> (> map> (itemgetter(> 0> ),> dict> .items()))> # Driver program> dict> => {> 'a'> :> 'Geeks'> ,> 'b'> :> 'For'> ,> 'c'> :> 'geeks'> }> print> (getList(> dict> ))> |
Lähtö:
['a', 'b', 'c']
Tapa 6: Kartan ja lambdan käyttö
Toinen tapa saada sanakirjaavaimet luettelona on käyttää map()-funktiota yhdessä lambda-funktion kanssa.
Tässä on esimerkki siitä, kuinka tämä voidaan tehdä:
Python 3
def> get_keys_as_list(dictionary):> > return> list> (> map> (> lambda> x: x[> 0> ], dictionary.items()))> # Driver program> dictionary> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> print> (get_keys_as_list(dictionary))> #This code is contributed by Edula Vinay Kumar Reddy> |
Lähtö
[1, 2, 3]
Tämä lähestymistapa käyttää map()-funktiota lambda-funktion käyttämiseen sanakirjan jokaiseen kohtaan, joka palauttaa avaimen jokaisesta alkiosta. Tuloksena oleva iteraattoriobjekti välitetään sitten list()-funktiolle avainten luettelon luomiseksi.
Tämän lähestymistavan aikamonimutkaisuus on O(n) ja apuavaruuden monimutkaisuus O(n), missä n on avainten lukumäärä sanakirjassa. Se on ytimekäs ja tehokas tapa saada sanakirjan avaimet luettelona.