Ordinare una lista in Python: la differenza tra ordinato e ordinato

Attività commerciale

Ci sono due modi per ordinare una lista in ordine crescente o decrescente in Python.

  • sort()
  • sorted()

Se volete ordinare una stringa o una tupla, usate sorted().

Le seguenti informazioni sono fornite qui.

  • Un metodo di tipo list che ordina la lista originalesort()
  • Genera una nuova lista ordinata, funzione integrata: .sorted()
  • Come ordinare stringhe e tuple

Ordinamento della lista originale, un metodo di tipo list: sort()

sort() è un metodo di tipo lista.

Un processo distruttivo in cui la lista originale stessa viene riscritta.

org_list = [3, 1, 4, 5, 2]

org_list.sort()
print(org_list)
# [1, 2, 3, 4, 5]

Si noti che sort() restituisce None.

print(org_list.sort())
# None

L'impostazione predefinita è l'ordine ascendente. Se volete ordinare in ordine decrescente, impostate l'argomento reverse a true.

org_list.sort(reverse=True)
print(org_list)
# [5, 4, 3, 2, 1]

Genera un nuovo elenco ordinato, funzione integrata: sorted()

sorted() è una funzione integrata.

Restituisce una lista ordinata quando la lista da ordinare è specificata come argomento. Questo è un processo non distruttivo che non modifica la lista originale.

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]

Come per sort(), il default è l'ordine ascendente. Se volete ordinare in ordine decrescente, impostate l'argomento reverse a 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]

Come ordinare stringhe e tuple

Poiché le stringhe e le tuple sono immutabili, non c'è nessun metodo sort() disponibile per riscrivere l'oggetto originale.

D'altra parte, l'argomento della funzione sorted(), che genera una lista ordinata come nuovo oggetto, può essere una stringa o una tupla così come una lista. Tuttavia, poiché sorted() restituisce una lista, essa deve essere convertita in una stringa o tupla.

Ordinamento delle stringhe

Quando viene specificata una stringa come argomento della funzione sorted(), viene restituita una lista in cui ogni carattere della stringa ordinata è memorizzato come elemento.

org_str = 'cebad'

new_str_list = sorted(org_str)
print(org_str)
print(new_str_list)
# cebad
# ['a', 'b', 'c', 'd', 'e']

Per concatenare una lista di stringhe in una singola stringa, usate il metodo join().

new_str = ''.join(new_str_list)
print(new_str)
# abcde

Se volete ordinare in ordine decrescente, impostate l'argomento reverse a 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

La dimensione di una stringa è determinata dal punto di codice Unicode (codice del carattere) del carattere.

Ordinamento delle tuple

Le tuple sono uguali alle stringhe; specificando una tupla come argomento della funzione sorted() si ottiene una lista ordinata di elementi.

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]

Per convertire una lista in una tupla, usate tuple().

new_tuple = tuple(new_tuple_list)
print(new_tuple)
# (1, 2, 3, 4, 5)

Se volete ordinare in ordine decrescente, impostate l'argomento reverse a 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)