
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)