logo

Python | Få ordboksnycklar som en lista

Med tanke på en ordbok, skriv ett Python-program för att få ordboksnycklarna som en lista.

Exempel:



 Input : {1:'a', 2:'b', 3:'c'} Output : [1, 2, 3] Input : {'A' : 'ant', 'B' : 'ball'} Output : ['A', 'B']>

Metod 1: Få ordboksnycklar som en lista med dict.keys()

Python list()-funktionen tar vilken som helst iterabel som en parameter och returnerar en lista. I Python är iterable objektet du kan iterera över.

Python3








mydict>=> {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> list>(mydict.keys())> print>(keysList)>

>

>

Produktion

[1, 2, 3]>

Programmets tidskomplexitet är O(n), där n är antalet nycklar i ordboken.

Programmets rymdkomplexitet är O(n), där n är antalet nycklar i ordboken. Detta beror på att programmet skapar ett nytt listobjekt med samma antal element som nycklarna i ordboken, vilket kräver ytterligare minne.

js array

Metod 2: Få ordboksnycklar som en lista med metoden For Loop and append

I den här metoden kommer vi att iterera över varje tangent med hjälp av dict.keys() funktion och bifoga dem till en ny lista som heter en lista.

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

>

>

Produktion

[1, 2, 3]>

Tidskomplexitet: O(n)
Hjälputrymme: O(n)

Metod 3: Ordboksnycklar att lista med hjälp av listförståelse

Här kommer vi att försöka förkorta vår kod med hjälp av listförståelse i Python.

Python3




dict> => {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> [key>for> key>in> dict>]> print>(keysList)>

>

>

Produktion

[1, 2, 3]>

Tidskomplexitet: O(n), där n är antalet nyckel-värdepar i ordboken.
Hjälpmellanslag: O(n), för att lagra nycklar och värden i ordboken.

Metod 4: Ordboksnycklar att lista med hjälp av Uppackning med *

Att packa upp med * fungerar med alla itererbara objekt, och eftersom ordböcker returnerar sina nycklar när de itereras igenom, kan du enkelt skapa en lista genom att använda den i en lista.

Python3




def> getList(>dict>):> >return> [>*>dict>]> # Driver program> dict> => {>'a'>:>'Geeks'>,>'b'>:>'For'>,>'c'>:>'geeks'>}> print>(getList(>dict>))>

>

>

Produktion:

['a', 'b', 'c']>

Tidskomplexitet: O(N)

Hjälputrymme: O(N)

Metod 5: Dictionary Keys to List med hjälp av itemgetter

Itemgettern från operatörsmodulen returnerar ett anropsbart objekt som hämtar ett objekt från sin operand med hjälp av operandens __getitem__ () metod. Denna metod mappas till dict.items() och typcastas sedan till lista.

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

>

>

Produktion:

['a', 'b', 'c']>

Metod 6: Använd Map och lambda

Ett annat sätt att få ordboksnycklarna som en lista är att använda map()-funktionen i kombination med en lambda-funktion.

Här är ett exempel på hur detta kan göras:

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>

>

>

Produktion

[1, 2, 3]>

Detta tillvägagångssätt använder funktionen map() för att tillämpa lambda-funktionen på varje objekt i ordboken, vilket returnerar nyckeln från varje objekt. Det resulterande iteratorobjektet skickas sedan till funktionen list() för att skapa en lista med nycklarna.

Detta tillvägagångssätt har en tidskomplexitet av O(n) och en extra rymdkomplexitet av O(n), där n är antalet nycklar i ordboken. Det är ett kortfattat och effektivt sätt att få ordboksnycklarna som en lista.