logo

Python | Sorteer Python-woordenboeken op sleutel of waarde

Er zijn twee elementen in een Python-woordenboek: sleutels en waarden. U kunt het woordenboek sorteren op sleutels, waarden of beide. In dit artikel bespreken we de methoden voor het sorteren van woordenboeken op sleutel of waarde Python .

Behoefte aan sorteerwoordenboek in Python

We hebben het sorteren van gegevens nodig om de complexiteit van de gegevens te verminderen en zoekopdrachten sneller en efficiënter te maken. Sorteren is erg belangrijk als we met een grote hoeveelheid gegevens te maken hebben.



We kunnen een woordenboek op waarden sorteren met behulp van deze methoden:

  • Sorteer eerst de toetsen alfabetisch met behulp van sleutel waarde. itertoetsen() functie.
  • Ten tweede sorteert u de sleutels alfabetisch met behulp van de gesorteerd (sleutel_waarde) functie en druk de bijbehorende waarde af.
  • Ten derde sorteert u de waarden alfabetisch met behulp van sleutel waarde. iteritems() , sleutel = lambda (k, v) : (v, k))

Sorteer Python-woordenboeken op sleutel- of waardevoorbeelden

Hier volgen de belangrijkste taken die moeten worden uitgevoerd om een ​​woordenboek te sorteren op waarde en sleutels in Python.

  1. Maak een woordenboek en geef de lijsttoetsen alfabetisch weer.
  2. Geef zowel de sleutels als de waarden weer, gesorteerd op sleutel in alfabetische volgorde.
  3. Geef ten slotte zowel de sleutels als de waarden weer, gesorteerd op waarde in alfabetische volgorde.

Voorbeeld 1: Woordenboek sorteren op sleutel

In dit voorbeeld sorteren we het woordenboek op sleutels en is het resultaattype een woordenboek.



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

>

>

Uitvoer

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

Voorbeeld 2: De sleutels in gesorteerde volgorde weergeven

In dit voorbeeld proberen we het woordenboek te sorteren op sleutels en waarden in Python. Hier retourneert iterkeys() een iterator over de sleutels van het woordenboek.

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

>

scrollwiel werkt niet

>

Uitvoer

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

Voorbeeld 3: Het woordenboek sorteren op sleutel

In dit voorbeeld sorteren we in lexicografische volgorde, waarbij we het type van de sleutel als een string nemen.

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

>

>

Uitvoer

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

Voorbeeld 4: De sleutels en waarden alfabetisch sorteren met behulp van de sleutel

In dit voorbeeld proberen we het woordenboek te sorteren op sleutels en waarden in Python. Hier gebruiken we een iterator over de waarde van het woordenboek om de sleutels te sorteren.

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

>

>

Uitvoer

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

Voorbeeld 5: De sleutels en waarden alfabetisch sorteren met behulp van de waarde

In dit voorbeeld proberen we het woordenboek te sorteren op sleutels en waarden in Python. Hier gebruiken we om in lexicografische volgorde te sorteren.

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

>

>

Uitvoer

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

De tijdscomplexiteit voor dit programma is O(n log n), waarbij n het aantal sleutelwaardeparen in het woordenboek is.

De hulpruimtecomplexiteit voor dit programma is ook O(n), waarbij n het aantal sleutelwaardeparen in het woordenboek is.

Voorbeeld 6: Woordenboek sorteren op waarde

In dit voorbeeld proberen we het woordenboek te sorteren op waarden in Python. Hier gebruiken we woordenboekbegrip om onze waarden te sorteren.

Python3

Java-switch-instructie




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

>

>

Uitgang:

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

Tijdcomplexiteit: O(n log n), waarbij n het aantal items in het woordenboek is.
Hulpruimte: O(n), omdat we nieuwe lijsten met sleutels en waarden maken, en een nieuw woordenboek maken met hetzelfde aantal vermeldingen als het oorspronkelijke woordenboek.

We hebben verschillende voorbeelden besproken op basis van het sorteren van het woordenboek op sleutel of waarde. Door deze Python-codes te lezen en te oefenen, krijgt u inzicht in het sorteren in Python-woordenboeken.

U kunt de waarden van woordenboeken eenvoudig sorteren op sleutel of waarde.

Soortgelijke teksten:

  • Sorteer een woordenboek
  • Verschillende manieren om het woordenboek te sorteren op waarden en omgekeerd
  • Verschillende manieren om woordenboek te sorteren op sleutels en omgekeerd
  • Manieren om de lijst met woordenboeken op waarden te sorteren
  • Sorteren Lijst met woordenboeksleutels en waarden