logo

Kako sortirati rječnik u Pythonu

Python rječnik je zbirka podataka pohranjenih u obliku ključ-vrijednost. Svaki ključ je povezan sa svojom vrijednošću. Po prirodi je promjenjiv, što znači da možemo promijeniti podatke nakon njihova stvaranja.

To je neuređena zbirka podataka i dopušta pohranjivanje dupliciranih vrijednosti, ali ključ mora biti jedinstven.

tipkovnički prečaci za linux

Rječnik se deklarira pomoću vitičastih zagrada {}, a par ključ-vrijednost odvojen je zarezom.

 dict1 = {'name': 'Devansh', 'age': 22, 'Rollno':90014} print(dict1) 

Izlaz:

Zašto treba sortirati rječnik

  • Složenost vremena pretraživanja popisa je O(n), a rječnik ima složenost vremena pretraživanja 0(1), što znači da je rječnik brži od popisa. Rječnik se može koristiti umjesto popisa kad god zatreba.
  • Razvrstavanje nam omogućuje učinkovitu analizu podataka kada radimo sa strukturom podataka.
  • Razvrstani rječnik omogućuje bolje razumijevanje složenih operacija.

Hajdemo razumjeti različite načine sortiranja rječnika.

  • Razvrstavanje po ključevima
  • Sortiranje po vrijednostima
  • Algoritam sortiranja
  • Obrnuti sortirani redoslijed

Sortiranje po ključevima i vrijednostima

Piton nudi ugrađene funkcije tipki keys() i values() za sortiranje rječnika. Uzima bilo koji iterable kao argument i vraća sortirani popis ključeva. Možemo koristiti tipke za sortiranje rječnika uzlaznim redoslijedom. Razumimo sljedeći primjer.

Primjer -

 names = {1:'Alice' ,2:'John' ,4:'Peter' ,3:'Andrew' ,6:'Ruffalo' ,5:'Chris' } #print a sorted list of the keys print(sorted(names.keys())) #print the sorted list with items. print(sorted(names.items())) 

Izlaz:

 [1, 2, 3, 4, 5, 6] [(1, 'Alice'), (2, 'John'), (3, 'Andrew'), (4, 'Peter'), (5, 'Chris'), (6, 'Ruffalo')] 

Objašnjenje -

U gornjem kodu deklarirali smo rječnik imena . Koristili smo ugrađenu funkciju zajedno s poredano() funkcija koja je vratila popis razvrstanih ključeva. Zatim smo upotrijebili stavke() funkciju za dobivanje rječnika sortiranim redoslijedom.

Algoritam sortiranja

Postoje različiti algoritmi sortiranja za sortiranje rječnika; možemo koristiti druge argumente u sortiranoj metodi. Razumimo sljedeći primjer.

Primjer -

 daynames = { 'one' : 'Monday' , 'six' : 'Saturday' ,'three' : 'Wednesday' , 'two' : 'Tuesday' , 'five': 'Friday' , 'seven': 'Sunday' } print(daynames) number = { 'one' : 1 , 'two' : 2 , 'three' : 3 , 'four' : 4 , 'five' : 5 , 'six' : 6 , 'seven' : 7} print(sorted(daynames , key=number.__getitem__)) print([daynames[i] for i in sorted(daynames , key=number.__getitem__)]) 

Izlaz:

 {'one': 'Monday', 'six': 'Saturday', 'three': 'Wednesday', 'two': 'Tuesday', 'five': 'Friday', 'seven': 'Sunday'} ['one', 'two', 'three', 'five', 'six', 'seven'] ['Monday', 'Tuesday', 'Wednesday', 'Friday', 'Saturday', 'Sunday'] 

Obrnuti poredani poredak

Rječnik se može preokrenuti pomoću obrnuti argument. Razumimo sljedeći primjer.

Primjer -

 a = {'a':2 ,'b':1 ,'c':3 ,'d':4 ,'e':5 ,'f':6 } print(sorted(a.values() , reverse= True)) 

Izlaz:

 [6, 5, 4, 3, 2, 1] 

U ovom smo vodiču raspravljali o tome kako sortirati rječnik u Pythonu. Razvrstani rječnik lako se nosi s velikom količinom podataka i daje nam brze rezultate pretraživanja.