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.