Python | Få ordboknøkler som en liste
Gitt en ordbok, skriv et Python-program for å få ordboknøklene som en liste.
Eksempler:
Input : {1:'a', 2:'b', 3:'c'} Output : [1, 2, 3] Input : {'A' : 'ant', 'B' : 'ball'} Output : ['A', 'B'] Metode 1: Få ordboknøkler som en liste ved å bruke dict.keys()
Python list()-funksjonen tar hvilken som helst iterabel som en parameter og returnerer en liste. I Python er iterable objektet du kan iterere over.
Python3
mydict> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> keysList> => list> (mydict.keys())> print> (keysList)> |
Produksjon
[1, 2, 3]
Tidskompleksiteten til programmet er O(n), der n er antall nøkler i ordboken.
Romkompleksiteten til programmet er O(n), der n er antall nøkler i ordboken. Dette er fordi programmet lager et nytt listeobjekt med samme antall elementer som nøklene i ordboken, noe som krever ekstra minne.
Metode 2: Få ordboknøkler som en liste ved å bruke For Loop and append-metoden
I denne metoden vil vi iterere over hver tast ved å bruke dict.keys() funksjon og legge til dem til en ny liste navngitt som en liste.
Python3
# 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> ))> |
Produksjon
[1, 2, 3]
Tidskompleksitet: O(n)
Hjelpeområde: O(n)
Metode 3: Ordboknøkler til liste ved hjelp av listeforståelse
Her vil vi prøve å forkorte koden vår ved å bruke listeforståelse i Python.
Python3
dict> => {> 1> :> 'Geeks'> ,> 2> :> 'for'> ,> 3> :> 'geeks'> }> keysList> => [key> for> key> in> dict> ]> print> (keysList)> |
Produksjon
[1, 2, 3]
Tidskompleksitet: O(n), der n er antall nøkkel-verdi-par i ordboken.
Hjelpemellomrom: O(n), for å lagre nøklene og verdiene i ordboken.
Metode 4: Ordboknøkler til liste ved hjelp av Utpakking med *
Utpakking med * fungerer med ethvert gjentakbart objekt, og siden ordbøker returnerer nøklene sine når de gjentas, kan du enkelt lage en liste ved å bruke den i en bokstavlig liste.
Python3
def> getList(> dict> ):> > return> [> *> dict> ]> # Driver program> dict> => {> 'a'> :> 'Geeks'> ,> 'b'> :> 'For'> ,> 'c'> :> 'geeks'> }> print> (getList(> dict> ))> |
Produksjon:
['a', 'b', 'c']
Tidskompleksitet: O(N)
Hjelpeområde: O(N)
Metode 5: Ordboknøkler til liste ved hjelp av itemgetter
Elementgetteren fra operatørmodulen returnerer et anropbart objekt som henter et element fra sin operand ved å bruke operandens __getitem__ () metode. Denne metoden er tilordnet til dict.items() og deretter typecastet til liste.
Python3
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> ))> |
Produksjon:
['a', 'b', 'c']
Metode6: Bruke kart og lambda
En annen tilnærming for å få ordboknøklene som en liste er å bruke map()-funksjonen i kombinasjon med en lambda-funksjon.
Her er et eksempel på hvordan dette kan gjøres:
Python3
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> |
Produksjon
[1, 2, 3]
Denne tilnærmingen bruker map()-funksjonen til å bruke lambda-funksjonen på hvert element i ordboken, som returnerer nøkkelen fra hvert element. Det resulterende iteratorobjektet sendes deretter til list()-funksjonen for å lage en liste over nøklene.
Denne tilnærmingen har en tidskompleksitet på O(n) og en hjelperomkompleksitet på O(n), der n er antall nøkler i ordboken. Det er en kortfattet og effektiv måte å få ordboknøklene som en liste.