Ordina una lista in ordine alfabetico in Python

Manav Narula 18 luglio 2021
  1. Usa il metodo sort() per ordinare una lista alfabeticamente in Python
  2. Usa la funzione sorted() per ordinare alfabeticamente una lista in Python
  3. Usa l’algoritmo di ordinamento rapido per ordinare una lista alfabeticamente in Python
Ordina una lista in ordine alfabetico in Python

In questo tutorial, discuteremo come ordinare una lista contenente stringhe in ordine alfabetico utilizzando le funzioni sort() e sorted() e utilizzando l’algoritmo di ordinamento rapido.

Sia sort() che sorted() possono eseguire la stessa funzione, con la differenza principale tra loro che la funzione sort() ordina l’lista originale, mentre la funzione sorted() crea un nuovo lista.

Usa il metodo sort() per ordinare una lista alfabeticamente in Python

Il metodo sort() dell’oggetto lista viene utilizzato per ordinare una lista. Per impostazione predefinita, ordina l’lista in ordine crescente. Per esempio:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
my_list.sort()
print(my_list)

Produzione:

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']

Per ordinare l’lista in ordine inverso possiamo usare il parametro reverse e impostarlo su True. Per impostazione predefinita è False. Per esempio:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
my_list.sort(reverse=True)
print(my_list)

Produzione:

['Sam', 'Mark', 'Jay', 'Jack', 'Baron']

Notare che l’ordine dell’lista ordinato è stato invertito. Possiamo anche specificare la condizione da ordinare usando il parametro key. Nel codice seguente, ordineremo l’lista in base alla lunghezza della stringa di ciascun elemento in ordine crescente:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
my_list.sort(key=len)
print(my_list)

Produzione:

['Sam', 'Jay', 'Mark', 'Jack', 'Baron']

Usa la funzione sorted() per ordinare alfabeticamente una lista in Python

La funzione sorted() ordina anche una lista nell’ordine richiesto, ma crea un nuovo lista e non altera l’lista originale. Per ordinare alfabeticamente in ordine crescente, lo passiamo semplicemente alla funzione come mostrato di seguito.

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
sorted_list = sorted(my_list)
print(sorted_list)

Produzione:

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']

Analogamente al metodo sort(), possiamo ordinare in ordine decrescente utilizzando il parametro reverse. Per esempio:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
sorted_list = sorted(my_list, reverse=True)
print(sorted_list)

Produzione:

['Sam', 'Mark', 'Jay', 'Jack', 'Baron']

Possiamo anche usare il parametro key per specificare la condizione per l’ordinamento come abbiamo fatto con la funzione sort(). Per esempio:

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]
sorted_list = sorted(my_list, reverse=True, key=len)
print(sorted_list)

Produzione:

['Baron', 'Mark', 'Jack', 'Sam', 'Jay']

Usa l’algoritmo di ordinamento rapido per ordinare una lista alfabeticamente in Python

Possiamo anche utilizzare l’algoritmo di ordinamento rapido per ordinare una lista. Questo metodo potrebbe non essere convenzionale, ma vale la pena notare che anche altre tecniche di ordinamento come merge sort, selection sort, insertion sort, heap sort e bubble sort possono ottenere questo risultato. Il codice seguente mostra una funzione che implementa il metodo quicksort per ordinare una lista in Python.

my_list = ["Jack", "Sam", "Jay", "Mark", "Baron"]


def quicksort(lst):
    if not lst:
        return []
    return (
        quicksort([x for x in lst[1:] if x < lst[0]])
        + [lst[0]]
        + quicksort([x for x in lst[1:] if x >= lst[0]])
    )


print(quicksort(my_list))

Produzione:

['Baron', 'Jack', 'Jay', 'Mark', 'Sam']
Autore: Manav Narula
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Articolo correlato - Python List