Sortarea unei liste în Python: diferența dintre sortat și sortat

Afaceri

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)
Copied title and URL