Python | Rūšiuoti Python žodynus pagal raktą arba reikšmę
Python žodyne yra du elementai – raktai ir reikšmės. Galite rūšiuoti žodyną pagal raktus, reikšmes arba abu. Šiame straipsnyje aptarsime žodynų rūšiavimo pagal raktą ar reikšmę metodus Python .
Reikalingas rūšiavimo žodynas Python
Mums reikia rūšiuoti duomenis, kad būtų sumažintas duomenų sudėtingumas ir užklausos būtų greitesnės bei efektyvesnės. Rūšiavimas yra labai svarbus, kai susiduriame su dideliu duomenų kiekiu.
Žodyną galime rūšiuoti pagal reikšmes naudodami šiuos metodus:
- Pirmiausia surūšiuokite klavišus abėcėlės tvarka rakto_vertė. iterkeys () funkcija.
- Antra, rūšiuokite klavišus abėcėlės tvarka naudodami surūšiuota (rakto_vertė) funkcija ir išspausdinkite ją atitinkančią reikšmę.
- Trečia, surūšiuokite reikšmes abėcėlės tvarka naudodami rakto_vertė. iteritems () , raktas = lambda (k, v) : (v, k))
Rūšiuokite Python žodynus pagal raktų arba reikšmių pavyzdžius
Čia pateikiamos pagrindinės užduotys, kurias reikia atlikti norint rūšiuoti žodyną pagal reikšmę ir raktus Python.
- Sukurti žodynas ir rodyti jo sąrašo klavišus abėcėlės tvarka.
- Rodykite raktus ir reikšmes, surūšiuotas pagal raktus abėcėlės tvarka.
- Pagaliau rodykite raktus ir reikšmes, surūšiuotas pagal reikšmes abėcėlės tvarka.
1 pavyzdys: Žodyno rūšiavimas pagal raktą
Šiame pavyzdyje mes surūšiuosime žodyną pagal raktus, o rezultato tipas bus žodynas.
Python3
myDict> => {> 'ravi'> :> 10> ,> 'rajnish'> :> 9> ,> > 'sanjeev'> :> 15> ,> 'yash'> :> 2> ,> 'suraj'> :> 32> }> myKeys> => list> (myDict.keys())> myKeys.sort()> sorted_dict> => {i: myDict[i]> for> i> in> myKeys}> print> (sorted_dict)> |
Išvestis
{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2} 2 pavyzdys: Raktų rodymas surūšiuota tvarka
Šiame pavyzdyje mes bandome rūšiuoti žodyną pagal raktus ir reikšmes Python. Čia iterkeys() grąžina iteratorių per žodyno klavišus.
Python3
# Function calling> def> dictionary():> > # Declare hash function> > key_value> => {}> # Initializing value> > key_value[> 2> ]> => 56> > key_value[> 1> ]> => 2> > key_value[> 5> ]> => 12> > key_value[> 4> ]> => 24> > key_value[> 6> ]> => 18> > key_value[> 3> ]> => 323> > print> (> 'Task 1:-
'> )> > print> (> 'key_value'> , key_value)> > # iterkeys() returns an iterator over the> > # dictionary’s keys.> > for> i> in> sorted> (key_value.keys()):> > print> (i, end> => ' '> )> def> main():> > # function calling> > dictionary()> # Main function calling> if> __name__> => => '__main__'> :> > main()> |
Išvestis
Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 6 3 pavyzdys: žodyno rūšiavimas pagal raktą
Šiame pavyzdyje mes rūšiuosime leksikografine tvarka, paimdami rakto tipą kaip eilutę.
Python3
# Creates a sorted dictionary (sorted by key)> from> collections> import> OrderedDict> dict> => {> 'ravi'> :> '10'> ,> 'rajnish'> :> '9'> ,> > 'sanjeev'> :> '15'> ,> 'yash'> :> '2'> ,> 'suraj'> :> '32'> }> dict1> => OrderedDict(> sorted> (> dict> .items()))> print> (dict1)> |
Išvestis
OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')]) 4 pavyzdys: Raktų ir reikšmių rūšiavimas abėcėlės tvarka naudojant raktą
Šiame pavyzdyje mes bandome rūšiuoti žodyną pagal raktus ir reikšmes Python. Klavišams rūšiuoti naudojame žodyno reikšmės iteratorių.
Python3
# function calling> def> dictionairy():> > # Declaring the hash function> > key_value> => {}> # Initialize value> > key_value[> 2> ]> => 56> > key_value[> 1> ]> => 2> > key_value[> 5> ]> => 12> > key_value[> 4> ]> => 24> > key_value[> 6> ]> => 18> > key_value[> 3> ]> => 323> > > print> (> 'key_value'> ,key_value)> > print> (> 'Task 2:-
Keys and Values sorted in'> ,> > 'alphabetical order by the key '> )> > > # sorted(key_value) returns a sorted list> > # of the Dictionary’s keys.> > for> i> in> sorted> (key_value):> > print> ((i, key_value[i]), end> => ' '> )> def> main():> > # function calling> > dictionairy()> # main function calling> if> __name__> => => '__main__'> :> > main()> |
Išvestis
key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 2:- Keys and Values sorted in alphabetical order by the key (1, 2) (2, 56) (3, 323) (4, 24) (5, 12) (6, 18) 5 pavyzdys: Raktų ir reikšmių rūšiavimas abėcėlės tvarka naudojant reikšmę
Šiame pavyzdyje mes bandome rūšiuoti žodyną pagal raktus ir reikšmes Python. Čia mes naudojame rūšiuoti leksikografine tvarka.
Python3
# Function calling> def> dictionairy():> > # Declaring hash function> > key_value> => {}> # Initializing the value> > key_value[> 2> ]> => 56> > key_value[> 1> ]> => 2> > key_value[> 5> ]> => 12> > key_value[> 4> ]> => 24> > key_value[> 6> ]> => 18> > key_value[> 3> ]> => 323> > > print> (> 'key_value'> ,key_value)> > print> (> 'Task 3:-
Keys and Values sorted'> ,> > 'in alphabetical order by the value'> )> > # Note that it will sort in lexicographical order> > # For mathematical way, change it to float> > print> (> sorted> (key_value.items(), key> => lambda> kv:> > (kv[> 1> ], kv[> 0> ])))> def> main():> > # function calling> > dictionairy()> # main function calling> if> __name__> => => '__main__'> :> > main()> |
Išvestis
key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} Task 3:- Keys and Values sorted in alphabetical order by the value [(1, 2), (5, 12), (6, 18), (4, 24), (2, 56), (3, 323)] Šios programos laiko sudėtingumas yra O(n log n), kur n yra raktų ir reikšmių porų skaičius žodyne.
Šios programos pagalbinės erdvės sudėtingumas taip pat yra O(n), kur n yra raktų ir reikšmių porų skaičius žodyne.
6 pavyzdys: Žodyno rūšiavimas pagal reikšmę
Šiame pavyzdyje mes bandome rūšiuoti žodyną pagal Python reikšmes. Čia mes naudojame žodyno supratimą, kad rūšiuotume savo vertybes.
Python3
# Creates a sorted dictionary (sorted by key)> from> collections> import> OrderedDict> import> numpy as np> dict> => {> 'ravi'> :> 10> ,> 'rajnish'> :> 9> ,> > 'sanjeev'> :> 15> ,> 'yash'> :> 2> ,> 'suraj'> :> 32> }> print> (> dict> )> keys> => list> (> dict> .keys())> values> => list> (> dict> .values())> sorted_value_index> => np.argsort(values)> sorted_dict> => {keys[i]: values[i]> for> i> in> sorted_value_index}> print> (sorted_dict)> |
Išvestis:
{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} {'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32} Laiko sudėtingumas: O(n log n), kur n yra elementų skaičius žodyne.
Pagalbinė erdvė: O(n), nes kuriame naujus raktų ir reikšmių sąrašus ir naują žodyną su tokiu pat įrašų skaičiumi kaip ir pradiniame žodyne.
Apžvelgėme įvairius pavyzdžius, pagrįstus rūšiavimo žodynu pagal raktą arba reikšmę. Šių Python kodų skaitymas ir praktika padės suprasti rūšiavimą Python žodynuose.
Galite lengvai rūšiuoti žodynų reikšmes pagal raktą arba reikšmę.
Panašūs skaitiniai:
- Rūšiuoti žodyną
- Įvairūs būdai rūšiuoti žodyną pagal vertybes ir atvirkščiai
- Įvairūs būdai rūšiuoti žodyną pagal raktus ir atvirkščiai
- Žodynų sąrašo rūšiavimo pagal vertes būdai
- Rūšiuoti žodyno raktą ir verčių sąrašą