Turėdami žodyną, parašykite Python programą, kad gautumėte žodyno raktus kaip sąrašą.
Pavyzdžiai:
Input : {1:'a', 2:'b', 3:'c'} Output : [1, 2, 3] Input : {'A' : 'ant', 'B' : 'ball'} Output : ['A', 'B']> 1 būdas: Gaukite žodyno raktus kaip sąrašą naudodami dict.keys()
Funkcija Python list() paima bet kokį kartotinį parametrą ir pateikia sąrašą. Python, iterable yra objektas, kurį galite kartoti.
Python3
mydict>=> {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> list>(mydict.keys())> print>(keysList)> |
>
>Išvestis
[1, 2, 3]>
Programos laiko sudėtingumas yra O(n), kur n – žodyne esančių raktų skaičius.
Programos erdvės sudėtingumas yra O(n), kur n yra raktų skaičius žodyne. Taip yra todėl, kad programa sukuria naują sąrašo objektą su tokiu pat elementų skaičiumi kaip ir žodyne esantys raktai, todėl tam reikia papildomos atminties.
suderinamumo bandymas
2 būdas: Gaukite žodyno raktus kaip sąrašą naudodami For Loop ir append metodą
Taikant šį metodą, mes pakartosime kiekvieną klavišą naudodami dict.keys() funkcija ir pridėti į naują sąrašą, pavadintą sąrašu.
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>))> |
>
>Išvestis
[1, 2, 3]>
Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(n)
3 būdas: Sąrašo žodyno klavišai naudojant sąrašo supratimą
Čia mes bandysime sutrumpinti savo kodą naudodami sąrašo supratimą Python.
Python3
dict> => {>1>:>'Geeks'>,>2>:>'for'>,>3>:>'geeks'>}> keysList>=> [key>for> key>in> dict>]> print>(keysList)> |
>
>Išvestis
[1, 2, 3]>
Laiko sudėtingumas: O(n), kur n yra raktų ir reikšmių porų skaičius žodyne.
Pagalbinė erdvė: O(n), raktams ir reikšmėms saugoti žodyne.
4 būdas: Žodyno raktai įtraukti į sąrašą naudojant Išpakavimas su *
Išpakavimas naudojant * veikia su bet kokiu iteruojamu objektu, ir kadangi žodynai grąžina raktus, kai kartojami, galite lengvai sukurti sąrašą naudodami jį sąrašo literatūroje.
Python3
def> getList(>dict>):> >return> [>*>dict>]> # Driver program> dict> => {>'a'>:>'Geeks'>,>'b'>:>'For'>,>'c'>:>'geeks'>}> print>(getList(>dict>))> |
>
>
Išvestis:
['a', 'b', 'c']>
Laiko sudėtingumas: O(N)
Pagalbinė erdvė: O(N)
5 būdas: Sąrašo žodyno klavišai naudojant itemgetter
Operatoriaus modulio elementas grąžina iškviečiamą objektą, kuris paima elementą iš savo operando naudodamas operando __getitem__ () metodas. Šis metodas susietas su dict.items() ir tada perduodamas į sąrašą.
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>))> |
>
>
Išvestis:
['a', 'b', 'c']>
6 metodas: Žemėlapio ir lambda naudojimas
Kitas būdas gauti žodyno klavišus kaip sąrašą yra naudoti funkciją map() kartu su lambda funkcija.
Štai pavyzdys, kaip tai galima padaryti:
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> |
>
>Išvestis
[1, 2, 3]>
Šis metodas naudoja funkciją map(), kad kiekvienam žodyno elementui pritaikytų lambda funkciją, kuri grąžina kiekvieno elemento raktą. Tada gautas iteratoriaus objektas perduodamas funkcijai list(), kad būtų sukurtas raktų sąrašas.
Šio metodo laiko sudėtingumas yra O(n), o pagalbinės erdvės sudėtingumas yra O(n), kur n yra raktų skaičius žodyne. Tai glaustas ir efektyvus būdas gauti žodyno raktus kaip sąrašą.