Ve slovníku Pythonu jsou dva prvky – klíče a hodnoty. Slovník můžete třídit podle klíčů, hodnot nebo obojího. V tomto článku probereme metody řazení slovníků pomocí klíče nebo hodnoty Krajta .
Need for Sorting Dictionary v Pythonu
Potřebujeme třídění dat, abychom snížili složitost dat a zrychlili a zefektivnili dotazy. Třídění je velmi důležité, když máme co do činění s velkým množstvím dat.
Slovník můžeme třídit podle hodnot pomocí těchto metod:
- Nejprve seřaďte klíče abecedně pomocí klíč_hodnota. iterkeys() funkce.
- Za druhé, seřaďte klíče abecedně pomocí seřazeno (klíč_hodnota) funkce a vytiskněte hodnotu, která tomu odpovídá.
- Za třetí, seřaďte hodnoty abecedně pomocí klíč_hodnota. iteritem() , klíč = lambda (k, v): (v, k))
Seřaďte slovníky Pythonu podle příkladů klíče nebo hodnoty
Zde jsou hlavní úkoly, které je třeba provést k seřazení slovníku podle hodnoty a klíčů v Pythonu.
- Vytvořit slovník a zobrazit jeho klávesy seznamu podle abecedy.
- Zobrazte klíče i hodnoty seřazené podle klíče v abecedním pořadí.
- Nakonec zobrazte klíče i hodnoty seřazené podle hodnoty v abecedním pořadí.
Příklad 1: Řazení slovníku podle klíče
V tomto příkladu seřadíme slovník podle klíčů a výsledkem 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ýstup
{'rajnish': 9, 'ravi': 10, 'sanjeev': 15, 'suraj': 32, 'yash': 2}> Příklad 2: Zobrazení klíčů v seřazeném pořadí
V tomto příkladu se snažíme seřadit slovník podle klíčů a hodnot v Pythonu. Zde iterkeys() vrací iterátor přes klíče slovníku.
Python3
scan.nextstring java
# 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ýstup
Task 1:- key_value {2: 56, 1: 2, 5: 12, 4: 24, 6: 18, 3: 323} 1 2 3 4 5 6> Příklad 3: Třídění slovníku podle klíče
V tomto příkladu budeme třídit v lexikografickém pořadí s použitím typu klíče jako řetězce.
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)> |
>
>Výstup
OrderedDict([('rajnish', '9'), ('ravi', '10'), ('sanjeev', '15'), ('suraj', '32'), ('yash', '2')])> Příklad 4: Abecední řazení klíčů a hodnot pomocí klíče
V tomto příkladu se snažíme seřadit slovník podle klíčů a hodnot v Pythonu. Zde používáme k řazení klíčů iterátor nad hodnotou slovníku.
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()> |
>
>
java jinak pokudVýstup
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)> Příklad 5: Abecední řazení klíčů a hodnot pomocí hodnoty
V tomto příkladu se snažíme seřadit slovník podle klíčů a hodnot v Pythonu. Zde používáme k řazení v lexikografickém pořadí.
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()> |
>
>
if a jinde v bashVýstup
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á složitost tohoto programu je O(n log n), kde n je počet párů klíč-hodnota ve slovníku.
Pomocná prostorová složitost pro tento program je také O(n), kde n je počet párů klíč-hodnota ve slovníku.
Příklad 6: Řazení slovníku podle hodnoty
V tomto příkladu se snažíme seřadit slovník podle hodnot v Pythonu. Zde používáme porozumění slovníku k třídění našich hodnot.
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)> |
>
>
Výstup:
{'ravi': 10, 'rajnish': 9, 'sanjeev': 15, 'yash': 2, 'suraj': 32} {'ravi': 2, 'rajnish': 9, 'sanjeev': 10, 'yash': 15, 'suraj': 32}> Časová složitost: O(n log n), kde n je počet položek ve slovníku.
Pomocný prostor: O(n), protože vytváříme nové seznamy klíčů a hodnot a vytváříme nový slovník se stejným počtem záznamů jako původní slovník.
Probrali jsme různé příklady založené na řazení slovníku podle klíče nebo hodnoty. Čtení a procvičování těchto kódů Pythonu vám pomůže porozumět řazení ve slovnících Pythonu.
Hodnoty slovníků můžete snadno seřadit podle jejich klíče nebo hodnoty.
Podobné čtení:
- Seřadit slovník
- Různé způsoby řazení slovníku podle hodnot a obráceně
- Různé způsoby řazení slovníku podle klíčů a obráceně
- Způsoby řazení seznamu slovníků podle hodnot
- Seřadit Seznam klíčů a hodnot slovníku