logo

Python | Sortera Python-ordböcker efter nyckel eller värde

Det finns två element i en Python-ordbok - nycklar och värden. Du kan sortera ordlistan efter nycklar, värden eller båda. I den här artikeln kommer vi att diskutera metoderna för att sortera ordböcker efter nyckel eller värde med hjälp av Pytonorm .

Behov av sorteringsordbok i Python

Vi behöver sortering av data för att minska datakomplexiteten och göra förfrågningar snabbare och effektivare. Sortering är mycket viktigt när vi har att göra med en stor mängd data.



Vi kan sortera en ordbok efter värden med dessa metoder:

  • Sortera först nycklarna alfabetiskt med hjälp av nyckelvärde. iterkeys() fungera.
  • För det andra, sortera nycklarna alfabetiskt med hjälp av sorterad (nyckelvärde) funktion & skriv ut värdet som motsvarar det.
  • För det tredje, sortera värdena alfabetiskt med hjälp av nyckelvärde. iteritems() , nyckel = lambda (k, v) : (v, k))

Sortera Python-ordböcker efter nyckel- eller värdeexempel

Här är de viktigaste uppgifterna som måste utföras för att sortera en ordbok efter värde och nycklar i Python.

  1. Skapa en lexikon och visa dess listknappar i alfabetisk ordning.
  2. Visa både nycklar och värden, sorterade efter nyckel i alfabetisk ordning.
  3. Till sist, visa både nycklar och värden, sorterade efter värde i alfabetisk ordning.

Exempel 1: Sortera ordbok efter nyckel

I det här exemplet kommer vi att sortera ordboken efter nycklar och resultattypen blir en ordbok.



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

sammanfogningar och typer av sammanfogningar

>

>

Produktion

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

Exempel 2: Visar nycklarna i sorterad ordning

I det här exemplet försöker vi sortera ordboken efter nycklar och värden i Python. Här returnerar iterkeys() en iterator över ordbokens nycklar.

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

>

>

Produktion

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

Exempel 3: Sortera ordboken efter nyckel

I det här exemplet kommer vi att sortera i lexikografisk ordning och ta nyckelns typ som en sträng.

Python3




string.format java sträng

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

>

>

Produktion

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

Exempel 4: Sortera nycklar och värden alfabetiskt med hjälp av nyckeln

I det här exemplet försöker vi sortera ordboken efter nycklar och värden i Python. Här använder vi en iterator över ordbokens värde för att sortera nycklarna.

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

>

>

Produktion

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

Exempel 5: Sortera nycklar och värden alfabetiskt med hjälp av värdet

I det här exemplet försöker vi sortera ordboken efter nycklar och värden i Python. Här använder vi för att sortera i lexikografisk ordning.

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

>

>

Produktion

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

Tidskomplexiteten för detta program är O(n log n), där n är antalet nyckel-värdepar i ordboken.

Hjälputrymmeskomplexiteten för detta program är också O(n), där n är antalet nyckel-värdepar i ordboken.

Exempel 6: Sortera ordbok efter värde

I det här exemplet försöker vi sortera ordboken efter värden i Python. Här använder vi ordboksförståelse för att sortera våra värderingar.

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

>

>

Produktion:

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

Tidskomplexitet: O(n log n), där n är antalet poster i ordboken.
Extra utrymme: O(n), eftersom vi skapar nya listor med nycklar och värden, och skapar en ny ordbok med samma antal poster som den ursprungliga ordboken.

Vi har täckt olika exempel baserat på sortering av ordbok efter nyckel eller värde. Att läsa och öva på dessa Python-koder hjälper dig att förstå sortering i Python-ordböcker.

sträng och delsträng

Du kan enkelt sortera värden i ordböcker efter nyckel eller värde.

Liknande läsningar:

  • Sortera en ordbok
  • Olika sätt att sortera ordbok efter värden och omvänd
  • Olika sätt att sortera ordbok efter nycklar och omvänd
  • Sätt att sortera lista med ordböcker efter värden
  • Sortera ordbok nyckel och värdelista