Ordbøker er nyttige når du lagrer kartlagte data siden hver tast er assosiert med den tilsvarende verdien.
Selv om ordbøker ikke er i orden, blir ordbøker sortert ved hjelp av Sett inn ordre I nyere versjoner av Python.
La oss lære hvordan vi kan sortere en ordbok basert på verdier.
Python sortert funksjon
Vi kan bruke sortert () funksjon for å sortere en ordbok etter verdi. Funksjonssyntaks er vist i følgende:
sortert (iterable, nøkkel = ingen, omvendt = falsk)Funksjonsparametrene er vist nedenfor:
Vi kan bruke den sorterte funksjonen til å sortere en ordbok etter verdi, som vist i følgende eksempel:
db =I forrige eksempelkode starter vi med å lage ordboken vi ønsker å sortere. Ordboken har databasetypen som nøkkelen og antall poster som verdien.
Vi bruker deretter sortert () Funksjon for å sortere varene i ordboken vår. Til slutt db.Itmes Funksjon lar oss få ordbokens verdier som en iterable liste.
Dette fjerner behovet for oss for å referere til verdiene etter indeksposisjonene.
Vi gir en anonym funksjon i nøkkelparameteren som lar oss sortere verdiene fra listen.
Siden vi ønsker at dataene våre skal sorteres fra største til minste, setter vi omvendt parameter til "True".
Nå skal den forrige koden returnere en liste med de sorterte verdiene. For å få tilgang til elementene, kan vi bruke følgende kode for loopen:
til Jeg i sorterte_verdier:
trykk (i [0], i [1])Her, Indeks 0 av listen representerer ordbokens nøkkel, mens Indeks 1 representerer verdien.
Den forrige koden skal returnere som vist nedenfor:
PostgreSql 20000Sorter funksjon med itemgetter
Python -operatørmodulen gir oss itemGetter () funksjon og lar oss få et kallbart objekt som henter et element fra den spesifiserte operanden.
Enkelt sagt, itemGetter (N) Funksjonen vil lage et kallbart objekt og henter det nth elementet (indeks).
For eksempel:
operatør.itemGetter (3) ('ABCDEFG')Funksjonen over vil hente varen i den tredje indeksen fra den medfølgende strengen. Funksjonen fungerer med ethvert iterable objekt som lister, tuples, ordbøker osv.
Vi kan kombinere itemGetter () Funksjon for å sortere verdiene i en ordbok, som vist i følgende eksempel:
Fra operatørimport itemetetterVi starter med å importere ItemGetter -funksjonen fra operatørmodulen i forrige kode.
Deretter bruker vi db.varer () Funksjon for å få nøkkelverdiparene som en liste over tuples. For å hente bare verdiene, bruker vi ItemGetter -funksjonen og passerer indeksen på 1 som parameter.
Dette skal returnere ordens verdier.
Når vi har sortert listen, kan vi iterere over den og lage en ny ordbok fra de sorterte verdiene.
Dette skal returnere en sortert ordbok som vist i følgende:
'Sqlite': 100, 'Mongodb': 250, 'MySql': 1000, 'Redis': 5000, 'PostgreSql': 20000Merk at ordren i dette er i stigende rekkefølge.
Konklusjon
Denne artikkelen viser metodene for å sortere en ordbok etter verdier. Bruker sortert () Funksjon, kan du stille den omvendte parameteren til "False" for å sortere ordboken i stigende rekkefølge.