logo

Python | Zoraďte slovníky Pythonu podľa kľúča alebo hodnoty

V slovníku Pythonu sú dva prvky – kľúče a hodnoty. Slovník môžete triediť podľa kľúčov, hodnôt alebo oboch. V tomto článku budeme diskutovať o metódach triedenia slovníkov pomocou kľúča alebo hodnoty Python .

Need for Sorting Dictionary in Python

Potrebujeme triedenie údajov, aby sme znížili zložitosť údajov a zrýchlili a zefektívnili dotazy. Triedenie je veľmi dôležité, keď sa zaoberáme veľkým množstvom údajov.

Slovník môžeme triediť podľa hodnôt pomocou týchto metód:



  • Najprv zoraďte kľúče abecedne pomocou kľúč_hodnota. iterkeys() funkciu.
  • Po druhé, zoraďte kľúče abecedne pomocou zoradené (kľúč_hodnota) funkciu a vytlačte jej zodpovedajúcu hodnotu.
  • Po tretie, zoraďte hodnoty abecedne pomocou kľúč_hodnota. iteritems() , kľúč = lambda (k, v): (v, k))

Zoraďte slovníky Pythonu podľa príkladov kľúčov alebo hodnôt

Tu sú hlavné úlohy, ktoré je potrebné vykonať na triedenie slovníka podľa hodnoty a kľúčov v Pythone.

  1. Vytvor slovník a zobraziť jeho klávesy zoznamu v abecednom poradí.
  2. Zobrazte kľúče aj hodnoty zoradené podľa kľúča v abecednom poradí.
  3. Nakoniec zobrazte kľúče aj hodnoty zoradené podľa hodnoty v abecednom poradí.

Príklad 1: Triedenie slovníka podľa kľúča

V tomto príklade zoradíme slovník podľa kľúčov a výsledkom bude slovník.

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

>

>

Výkon

{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}>

Príklad 2: Zobrazenie kľúčov v zoradenom poradí

V tomto príklade sa snažíme zoradiť slovník podľa kľúčov a hodnôt v Pythone. Tu iterkeys() vracia iterátor nad kľúčmi slovníka.

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

>

>

Výkon

Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 6>

Príklad 3: Triedenie slovníka podľa kľúča

V tomto príklade budeme triediť v lexikografickom poradí, pričom použijeme typ kľúča ako reťazec.

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

mvc java

>

>

Výkon

OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')])>

Príklad 4: Abecedné zoradenie kľúčov a hodnôt pomocou kľúča

V tomto príklade sa snažíme zoradiť slovník podľa kľúčov a hodnôt v Pythone. Tu používame iterátor nad hodnotou slovníka na triedenie kľúčov.

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

>

>

Výkon

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

Príklad 5: Zoradenie kľúčov a hodnôt podľa abecedy pomocou hodnoty

V tomto príklade sa snažíme zoradiť slovník podľa kľúčov a hodnôt v Pythone. Tu používame na triedenie v lexikografickom poradí.

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

>

>

Výkon

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

Časová zložitosť tohto programu je O(n log n), kde n je počet párov kľúč – hodnota v slovníku.

Pomocná priestorová zložitosť pre tento program je tiež O(n), kde n je počet párov kľúč-hodnota v slovníku.

Príklad 6: Triedenie slovníka podľa hodnoty

V tomto príklade sa snažíme zoradiť slovník podľa hodnôt v Pythone. Tu používame porozumenie slovníka na triedenie našich hodnôt.

Python3


java mapa



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

>

>

Výkon:

{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} {'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32}>

Časová zložitosť: O(n log n), kde n je počet položiek v slovníku.
Pomocný priestor: O(n), pretože vytvárame nové zoznamy kľúčov a hodnôt a vytvárame nový slovník s rovnakým počtom záznamov ako pôvodný slovník.

Pokryli sme rôzne príklady založené na triedení slovníka podľa kľúča alebo hodnoty. Čítanie a precvičovanie týchto kódov Pythonu vám pomôže pochopiť triedenie v slovníkoch Pythonu.

Hodnoty slovníkov môžete jednoducho zoradiť podľa ich kľúča alebo hodnoty.

Podobné čítanie:

  • Zoradiť slovník
  • Rôzne spôsoby triedenia slovníka podľa hodnôt a naopak
  • Rôzne spôsoby triedenia slovníka podľa kľúčov a spätného chodu
  • Spôsoby triedenia zoznamu slovníkov podľa hodnôt
  • Zoznam kľúčov a hodnôt slovníka na triedenie