Cum să sortați liste și dicționare în Python

Sortarea este o operațiune fundamentală în programare, permițându-vă să organizați datele în ordinea dorită. Python oferă instrumente robuste pentru sortarea listelor și a dicționarelor, facilitând manipularea eficientă a datelor. În acest articol, vom explora cum să sortăm atât listele, cât și dicționarele în Python, inclusiv diferite metode și exemple.

Sortarea listelor

Listele sunt una dintre cele mai frecvent utilizate structuri de date în Python. Puteți sorta liste folosind metoda încorporată sort() sau funcția sorted(). Iată cum funcționează fiecare metodă:

Folosind sort()

Metoda sort() sortează o listă în loc, ceea ce înseamnă că modifică lista originală și nu returnează o listă nouă. În mod implicit, sortează în ordine crescătoare.

# Example: Sorting a list in ascending order
numbers = [4, 2, 9, 1, 5]
numbers.sort()
print(numbers)  # Output: [1, 2, 4, 5, 9]

# Example: Sorting a list in descending order
numbers = [4, 2, 9, 1, 5]
numbers.sort(reverse=True)
print(numbers)  # Output: [9, 5, 4, 2, 1]

În exemplele de mai sus, metoda sort() sortează lista numerele mai întâi în ordine crescătoare și apoi în ordine descrescătoare folosind parametrul reverse=True.

Folosind sorted()

Funcția sorted() returnează o nouă listă sortată și nu modifică lista originală. De asemenea, vă permite să specificați ordinea de sortare cu parametrul reverse.

# Example: Using sorted() to get a new sorted list
numbers = [4, 2, 9, 1, 5]
sorted_numbers = sorted(numbers)
print(sorted_numbers)  # Output: [1, 2, 4, 5, 9]
print(numbers)  # Output: [4, 2, 9, 1, 5] (original list is unchanged)

# Example: Using sorted() to get a new sorted list in descending order
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)  # Output: [9, 5, 4, 2, 1]

Aici, sorted() returnează o nouă listă sorted_numbers fără a modifica lista originală numbers. De asemenea, puteți sorta în ordine descrescătoare cu parametrul reverse=True.

Sortarea dicționarelor

Sortarea dicționarelor presupune sortarea dicționarului după chei sau valori. Spre deosebire de liste, dicționarele sunt în mod inerent neordonate până la Python 3.7, unde au început să păstreze ordinea de inserare. Iată cum puteți sorta dicționarele:

Sortare după chei

Pentru a sorta un dicționar după cheile sale, utilizați funcția sorted() împreună cu înțelegerile sau buclele de dicționar.

# Example: Sorting a dictionary by keys
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_keys = {key: data[key] for key in sorted(data)}
print(sorted_by_keys)  # Output: {'apple': 4, 'banana': 3, 'orange': 2}

În acest exemplu, dicționarul data este sortat după cheile sale, rezultând un nou dicționar sorted_by_keys unde cheile sunt în ordine crescătoare.

Sortarea după valori

Pentru a sorta un dicționar după valorile sale, puteți utiliza funcția sorted() pe articolele dicționarului și apoi creați un nou dicționar.

# Example: Sorting a dictionary by values
data = {'banana': 3, 'apple': 4, 'orange': 2}
sorted_by_values = dict(sorted(data.items(), key=lambda item: item[1]))
print(sorted_by_values)  # Output: {'orange': 2, 'banana': 3, 'apple': 4}

Aici, data.items() returnează o listă de tupluri, iar sorted() este folosit pentru a sorta aceste tupluri după al doilea element (valoare) folosind o funcție lambda. Rezultatul este un nou dicționar sorted_by_values cu valori în ordine crescătoare.

Concluzie

Sortarea listelor și a dicționarelor în Python este simplă și puternică, datorită metodei sort() și funcției sorted() pentru liste și diferitelor tehnici pentru dicționare. Înțelegerea acestor metode vă va ajuta să gestionați și să analizați datele mai eficient. Experimentați aceste tehnici de sortare pentru a vedea cum pot fi aplicate propriilor proiecte!