logo

Python | Kārtojiet Python vārdnīcas pēc atslēgas vai vērtības

Python vārdnīcā ir divi elementi — atslēgas un vērtības. Varat kārtot vārdnīcu pēc taustiņiem, vērtībām vai abiem. Šajā rakstā mēs apspriedīsim vārdnīcu šķirošanas metodes pēc atslēgas vai vērtības Python .

Nepieciešama šķirošanas vārdnīca Python

Mums ir jākārto dati, lai samazinātu datu sarežģītību un padarītu vaicājumus ātrākus un efektīvākus. Šķirošana ir ļoti svarīga, ja mums ir darīšana ar lielu datu apjomu.

Mēs varam kārtot vārdnīcu pēc vērtībām, izmantojot šādas metodes:



  • Vispirms sakārtojiet taustiņus alfabētiskā secībā, izmantojot atslēgas_vērtība. iterkeys () funkciju.
  • Otrkārt, kārtojiet taustiņus alfabētiskā secībā, izmantojot sakārtots (atslēgas_vērtība) funkciju un izdrukājiet tai atbilstošo vērtību.
  • Treškārt, sakārtojiet vērtības alfabētiskā secībā, izmantojot atslēgas_vērtība. iteritems () , atslēga = lambda (k, v) : (v, k))

Kārtojiet Python vārdnīcas pēc atslēgu vai vērtību piemēriem

Šeit ir norādīti galvenie uzdevumi, kas jāveic, lai Python kārtotu vārdnīcu pēc vērtības un atslēgām.

  1. Izveidot a vārdnīca un parādīt tā saraksta taustiņus alfabētiskā secībā.
  2. Parādiet gan atslēgas, gan vērtības, sakārtotas pēc atslēgas alfabētiskā secībā.
  3. Beidzot parādiet gan taustiņus, gan vērtības, sakārtotas pēc vērtībām alfabētiskā secībā.

1. piemērs: vārdnīcas kārtošana pēc atslēgas

Šajā piemērā mēs šķirosim vārdnīcu pēc taustiņiem, un rezultāta veids būs vārdnīca.

Python3




java datums tagad

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

>

>

Izvade

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

2. piemērs: Atslēgas tiek rādītas sakārtotā secībā

Šajā piemērā mēs cenšamies kārtot vārdnīcu pēc atslēgām un vērtībām Python. Šeit iterkeys() atgriež iteratoru virs vārdnīcas taustiņiem.

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

>

attēls kā fons css
>

Izvade

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

3. piemērs: vārdnīcas kārtošana pēc atslēgas

Šajā piemērā mēs kārtosim leksikogrāfiskā secībā, ņemot atslēgas veidu kā virkni.

Python3




Normalizācija datu bāzē
# 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)>

>

>

Izvade

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

4. piemērs: Atslēgu un vērtību kārtošana alfabēta secībā, izmantojot taustiņu

Šajā piemērā mēs cenšamies kārtot vārdnīcu pēc atslēgām un vērtībām Python. Šeit mēs izmantojam vārdnīcas vērtības iteratoru, lai kārtotu atslēgas.

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

>

>

Izvade

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. piemērs: Atslēgu un vērtību kārtošana alfabēta secībā, izmantojot vērtību

Šajā piemērā mēs cenšamies kārtot vārdnīcu pēc atslēgām un vērtībām Python. Šeit mēs izmantojam, lai kārtotu leksikogrāfiskā secībā.

Python3

'prim's algoritms'




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

>

>

Izvade

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

Šīs programmas laika sarežģītība ir O(n log n), kur n ir atslēgu un vērtību pāru skaits vārdnīcā.

Šīs programmas palīgtelpas sarežģītība ir arī O(n), kur n ir atslēgu un vērtību pāru skaits vārdnīcā.

6. piemērs. Vārdnīcas kārtošana pēc vērtības

Šajā piemērā mēs cenšamies kārtot vārdnīcu pēc Python vērtībām. Šeit mēs izmantojam vārdnīcas izpratni, lai sakārtotu mūsu vērtības.

Python3




int uz virkni konvertēšanu java
# 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)>

>

>

Izvade:

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

Laika sarežģītība: O(n log n), kur n ir vienumu skaits vārdnīcā.
Palīgtelpa: O(n), jo mēs veidojam jaunus atslēgu un vērtību sarakstus un veidojam jaunu vārdnīcu ar tādu pašu ierakstu skaitu kā sākotnējā vārdnīcā.

Mēs esam apskatījuši dažādus piemērus, pamatojoties uz vārdnīcas šķirošanu pēc atslēgas vai vērtības. Šo Python kodu lasīšana un praktizēšana palīdzēs saprast kārtošanu Python vārdnīcās.

Varat viegli kārtot vārdnīcu vērtības pēc to atslēgas vai vērtības.

Līdzīgi lasījumi:

  • Kārtot vārdnīcu
  • Dažādi veidi, kā kārtot vārdnīcu pēc vērtībām un otrādi
  • Dažādi veidi, kā kārtot vārdnīcu pēc taustiņiem un reversiem
  • Veidi, kā kārtot vārdnīcu sarakstu pēc vērtībām
  • Kārtot vārdnīcas atslēgu un vērtību sarakstu