Skip to content

Ordinare una lista, una stringa o una tupla in Python (sort, sorted)

Python

In Python, ci sono due modi, sort() e sorted(), per ordinare le liste (list) in ordine crescente o decrescente. Se vuoi ordinare le stringhe (str) o le tuple (tuple), usa sorted().

In questo articolo vengono descritti i seguenti contenuti.

  • Il metodo del tipo di elenco sort() ordina l’elenco originale
  • La funzione incorporata sorted() riporta un elenco ordinato
  • Vieni a ordinare stringhe e tuple

Se desideri invertire o mescolare gli elementi in modo casuale, consulta i seguenti articoli.

sort() e sorted() hanno il parametro chiave, che non è descritto qui.

Vedere l’articolo seguente per esempi di utilizzo del parametro chiave.

Il metodo del tipo di elenco sort() ordina l’elenco originale

sort() è un metodo di tipo elenco.

sort() è un processo distruttivo che ordina l’elenco originale in posizione.

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

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

Nota che reverse() restituisce Nessuno.

print(org_list.sort())
# None

Per impostazione predefinita, l’elenco è ordinato in ordine crescente. Se si desidera ordinare in ordine decrescente, impostare il parametro reverse su True.

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

La funzione incorporata sorted() riporta un elenco ordinato

sorted() è una funzione incorporata.

Specificando un elenco su ordinato() viene restituito un elenco ordinato. L’elenco originale rimane invariato.

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 sort(), per ordine predefinito, l’elenco è ordinato in ordine crescente. Se si desidera ordinare in ordine decrescente, impostare il parametro reverse su 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]

Vieni a ordinare stringhe e tuple

Poiché le stringhe e le tuple sono immutabili, non esiste un metodo sort() che aggiorni l’oggetto originale.

D’altra parte, puoi specificare non solo elenchi ma anche stringhe e tuple nella funzione sorted() che crea un nuovo elenco ordinato. Poiché sorted() fornisce un elenco, deve essere convertito in una stringa o in una tupla.

ordina le stringhe

Il passaggio di una stringa a sorted() riporta un elenco contenente i caratteri ordinati come elementi.

org_str = 'cebad'

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

Usa il metodo join() per concatenare un elenco di caratteri in un’unica stringa.

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

Puoi scrivere in una riga. Se vuoi ordinare in ordine decrescente, imposta l’argomento reverse su 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

L’ordine dei caratteri è determinato dal loro punto di codice Unicode.

Tupla ordinata

L’ordinamento delle tuple è lo stesso delle stringhe. Il passaggio di una tupla a sorted() riporta un elenco ordinato.

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 scegliere una lista in una tupla, usa tuple().

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

Puoi scrivere in una riga. Se vuoi ordinare in ordine decrescente, imposta l’argomento reverse su 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)