Schrijf, gegeven een woordenboek, een Python-programma om de woordenboeksleutels als een lijst te krijgen.
Voorbeelden:
Input : {1:'a', 2:'b', 3:'c'} Output : [1, 2, 3] Input : {'A' : 'ant', 'B' : 'ball'} Output : ['A', 'B']> Methode 1: Haal woordenboeksleutels op als een lijst met dict.keys()
De Python list()-functie neemt elke iterabele parameter als parameter en retourneert een lijst. In Python is itereerbaar het object waarover u kunt herhalen.
Python3
mydict>=> {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> list>(mydict.keys())> print>(keysList)> |
>
>Uitvoer
[1, 2, 3]>
De tijdscomplexiteit van het programma is O(n), waarbij n het aantal sleutels in het woordenboek is.
De ruimtecomplexiteit van het programma is O(n), waarbij n het aantal sleutels in het woordenboek is. Dit komt omdat het programma een nieuw lijstobject aanmaakt met hetzelfde aantal elementen als de sleutels in het woordenboek, wat extra geheugen vereist.
tekenreeks formaat
Methode 2: Haal woordenboeksleutels op als een lijst met de For Loop- en toevoegmethode
Bij deze methode herhalen we elke sleutel met behulp van de dict.keys()-functie En toevoegen ze naar een nieuwe lijst met de naam lijst.
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>))> |
>
>Uitvoer
[1, 2, 3]>
Tijdcomplexiteit: O(n)
Hulpruimte: O(n)
Methode 3: Woordenboeksleutels voor lijst met behulp van lijstbegrip
Hier zullen we proberen onze code in te korten met behulp van lijstbegrip in Python.
Python3
dict> => {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> [key>for> key>in> dict>]> print>(keysList)> |
>
>Uitvoer
[1, 2, 3]>
Tijdcomplexiteit: O(n), waarbij n het aantal sleutelwaardeparen in het woordenboek is.
Hulpruimte: O(n), om de sleutels en waarden in het woordenboek op te slaan.
Methode 4: Woordenboeksleutels voor lijst met Uitpakken met *
Uitpakken met * werkt met elk itereerbaar object, en aangezien woordenboeken hun sleutels teruggeven wanneer ze worden herhaald, kun je eenvoudig een lijst maken door deze binnen een letterlijke lijst te gebruiken.
Python3
def> getList(>dict>):> >return> [>*>dict>]> # Driver program> dict> => {>'a'>:>'Geeks'>,>'b'>:>'For'>,>'c'>:>'geeks'>}> print>(getList(>dict>))> |
>
>
Uitgang:
['a', 'b', 'c']>
Tijdcomplexiteit: O(N)
Hulpruimte: O (N)
Methode 5: Woordenboeksleutels voor lijst met itemgetter
De itemgetter van de operatormodule retourneert een opvraagbaar object dat een item ophaalt van zijn operand met behulp van de __getitem__ () methode. Deze methode wordt toegewezen aan dict.items() en vervolgens getypeerd naar list.
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>))> |
>
>
Uitgang:
['a', 'b', 'c']>
Methode 6: Kaart en lambda gebruiken
Een andere benadering om de woordenboeksleutels als een lijst te krijgen, is door de functie map() te gebruiken in combinatie met een lambda-functie.
Hier is een voorbeeld van hoe dit kan worden gedaan:
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> |
>
>Uitvoer
[1, 2, 3]>
Deze aanpak gebruikt de functie map() om de lambda-functie toe te passen op elk item in het woordenboek, dat de sleutel van elk item retourneert. Het resulterende iteratorobject wordt vervolgens doorgegeven aan de functie list() om een lijst met sleutels te maken.
Deze benadering heeft een tijdcomplexiteit van O(n) en een hulpruimtecomplexiteit van O(n), waarbij n het aantal sleutels in het woordenboek is. Het is een beknopte en efficiënte manier om de woordenboeksleutels als een lijst te krijgen.