Cum se ordonează un dicționar după cheie și valoare în Python?

Apr 2, 2020 – 4 min citește

Bună ziua, toată lumea. Astăzi voi da sfaturi scurte despre sortarea dicționarelor în Python (Python3). După cum știm cu toții că dicționarele sunt în mod inerent fără ordine, dar alte tipuri, cum ar fi lista și tuplurile, nu sunt. Nu este posibil să sortăm un dicționar, dar putem face o reprezentare a unui dicționar care să fie sortat. Așadar, aveți nevoie de un tip de date ordonat pentru a reprezenta chei sau valori sortate, care va fi o listă – probabil o listă de tupluri.

Dicționar în Python (Sursa)

.

Procesul de sortare a dicționarelor

Așa cum putem vedea în prima figură dicționarele în python sunt un set de chei-perechi de valori, unde fiecare pereche de cheie-valoare se numește element. Acum să ne concentrăm asupra problemei principale: Dicționarele pot fi sortate după chei sau după valori. După cum este delimitat în a doua figură, putem sorta keys(), values() și items() dintr-un dicționar. Să ne concentrăm mai întâi pe sortarea după values().

Sortarea dicționarului după valoare

Să avem un dicționar format din mai multe organizații bine-cunoscute ca keys() și anul înființării lor ca values(). Așadar, dorim să avem un dicționar sortat în care elementele celei mai vechi organizații vor fi primul element, iar cea mai tânără organizație va fi ultima.

d = {"Apple": 1976, "Microsoft":1975, "Facebook":2004, "Sony":1946, "IBM":1911, "Amazon": 1994 }

După cum putem vedea în dicționarul d, IBM este cea mai veche organizație, prin urmare va fi prima cheie a dicționarului sortat, iar Facebook va fi ultima.

print(sorted(d.items(), key = lambda kv:kv))
print(sorted(d.items(), key = lambda kv:kv, reverse = True))
print(dict(sorted(d.items(), key = lambda kv:kv)))
sort_d = dict(sorted(d.items(), key = lambda kv:kv))
print(sort_d)

Succes:



{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}
{'IBM': 1911, 'Sony': 1946, 'Microsoft': 1975, 'Apple': 1976, 'Amazon': 1994, 'Facebook': 2004}

Din moment ce sortăm d.items(), care este o listă de tupluri în care keys()sunt primul parametru și values() sunt al doilea parametru al fiecărui tuplu. Pentru sortarea listei de tupluri, am ales valorile, adică al doilea parametru al fiecărui tuplu ca cheie. În prima linie, cheia este definită ca o lambdafuncție în care valoarea cheii este al doilea parametru al elementelor. Această sortare va crea o listă de tuple sortate. putem pur și simplu să o transformăm într-un dicționar folosind funcția dict(), așa cum se arată în a treia linie de cod. Putem, de asemenea, să inversăm sortarea care, în rezultat, creează o listă de tupluri în care cel mai nou este primul, iar cel mai vechi va fi ultimul element, așa cum este indicat în a doua linie de cod. Putem, de asemenea, să salvăm dicționarul sortat sub un alt nume, așa cum se arată mai sus.

Sortarea dicționarului după cheie

print(sorted(d.items()))
print(dict(sorted(d.items())))
print(dict(sorted(d.items(), key = lambda kv:kv)))
print(sorted(d.items(), reverse = True))

Ieșire:


{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}
{'Amazon': 1994, 'Apple': 1976, 'Facebook': 2004, 'IBM': 1911, 'Microsoft': 1975, 'Sony': 1946}

Cum știm că keys() aici în dicționarul d sunt șiruri de caractere, atunci sortarea după cheie va crea o listă de tuple în ordine alfabetică în keys() fiecărui element și folosind funcția dict() se formează dicționarul. putem folosi și funcția lambda pentru a defini cheia care este aproape inutilă, am arătat doar pentru a face o comparație în definirea cheii în sortare.

Acesta este. Vă rugăm să vizitați profilul meu pentru a obține mai multe povești despre învățarea mașinilor și analiza datelor. Orice fel de sugestii și critici sunt foarte apreciate. Iată poveștile mele anterioare bazate pe un curs de absolvire oferit de Universitatea Inha, Rep. Coreea:

Părți anterioare:

Partea-1: Python de bază și instalare
Partea-2: Capitolul-2: Structura datelor Python – Tip de date
Partea-3: Declarații de control (bucle) în Python
Partea:4: Structura datelor Python – Tip de date
Partea-3: Declarații de control (bucle) în Python
Partea:4: Structura datelor Python – Tip de date: Funcții Python & Module
Partea:5: Programare orientată pe obiecte în Python – Schafer & DataCamp.
Partea 6: Tipurile & procedurii de învățare automată
Partea 7: Inginerie de caracteristici pentru învățare automată

.

Lasă un răspuns

Adresa ta de email nu va fi publicată.