Există două moduri de a sorta o listă în ordine crescătoare sau descrescătoare în Python.
sort()
sorted()
Dacă doriți să sortați un șir de caractere sau un tupluplu, utilizați sorted().
Aici sunt furnizate următoarele informații.
- O metodă de tip listă care sortează lista originală
sort()
- Generarea unei noi liste sortate, funcție încorporată: .
sorted()
- Cum se sortează șiruri și tupluri
Sortarea listei inițiale, o metodă de tip listă: sort()
sort() este o metodă de tip listă.
Un proces distructiv prin care se rescrie însăși lista originală.
org_list = [3, 1, 4, 5, 2]
org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]
Rețineți că sort() returnează None.
print(org_list.sort())
# None
Ordinea implicită este ascendentă. Dacă doriți să sortați în ordine descrescătoare, setați argumentul reverse la true.
org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]
Generarea unei noi liste sortate, funcție încorporată: sorted()
sorted() este o funcție încorporată.
Returnează o listă sortată atunci când lista care trebuie sortată este specificată ca argument. Acesta este un proces nedistructiv care nu modifică lista originală.
org_list = [3, 1, 4, 5, 2]
new_list = sorted(org_list)
print(org_list)
print(new_list)
# [3, 1, 4, 5, 2]
# [1, 2, 3, 4, 5]
Ca și în cazul sort(), ordinea implicită este ascendentă. Dacă doriți să sortați în ordine descrescătoare, setați argumentul reverse la true.
new_list_reverse = sorted(org_list, reverse=True)
print(org_list)
print(new_list_reverse)
# [3, 1, 4, 5, 2]
# [5, 4, 3, 2, 1]
Cum se sortează șiruri și tupluri
Deoarece șirurile de caractere și tușele sunt imuabile, nu există o metodă sort() disponibilă pentru a rescrie obiectul original.
Pe de altă parte, argumentul funcției sorted(), care generează o listă sortată ca obiect nou, poate fi un șir de caractere sau o tupla, precum și o listă. Cu toate acestea, deoarece sorted() returnează o listă, aceasta trebuie convertită într-un șir de caractere sau o tupletă.
Sortarea șirurilor de caractere
Atunci când un șir de caractere este specificat ca argument al funcției sorted(), este returnată o listă în care fiecare caracter al șirului sortat este stocat ca element.
org_str = 'cebad'
new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']
Pentru a concatena o listă de șiruri de caractere într-un singur șir, utilizați metoda join().
new_str = ''.join(new_str_list)
print(new_str)
# abcde
Dacă doriți să sortați în ordine descrescătoare, setați argumentul reverse la true.
new_str = ''.join(sorted(org_str))
print(new_str)
# abcde
new_str_reverse = ''.join(sorted(org_str, reverse=True))
print(new_str_reverse)
# edcba
Dimensiunea unui șir de caractere este determinată de punctul de cod Unicode (codul caracterului) al caracterului.
Sortarea tuplurilor
Tuplurile sunt la fel ca șirurile de caractere; specificarea unui tuplu ca argument al funcției sorted() returnează o listă de elemente sortate.
org_tuple = (3, 1, 4, 5, 2)
new_tuple_list = sorted(org_tuple)
print(org_tuple)
print(new_tuple_list)
# (3, 1, 4, 5, 2)
# [1, 2, 3, 4, 5]
Pentru a converti o listă într-un tupluplu, utilizați tuple().
new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)
Dacă doriți să sortați în ordine descrescătoare, setați argumentul reverse la true.
new_tuple = tuple(sorted(new_tuple_list))
print(new_tuple)
# (1, 2, 3, 4, 5)
new_tuple_reverse = tuple(sorted(new_tuple_list, reverse=True))
print(new_tuple_reverse)
# (5, 4, 3, 2, 1)