Nei post precedenti abbiamo visto come creare una lista in python, cancellare un elemento da una lista python ed aggiungere un elemento ad una lista python. Adesso, scopriremo come è possibile ordinare gli elementi di una lista python in ordine crescente o descrescente. Questi metodi valgono sia per liste che contengono valori numerici, sia per liste che contengono altri tipi di dati ordinabili, come per esempio le stringhe.
Ordinare una lista python in ordine crescente
Per ordinare una lista python faremo uso del metodo predefinito list.sort(). Esso, come il nome stesso suggerisce, riordina gli elementi della lista a cui è applicato. Suppniamo dunque di definire una lista di numeri interi in questo modo:
l = [0, 3, 4, 1, 2, 5]
Per ordinare la lista in ordine crescente, usiamo la seguente linea di codice.
l.sort()
Il comando sopra modificherà la lista nel seguente modo:
l = [0, 1, 2, 3, 4, 5]
Importante: quando il metodo viene applicato alla lista non viene restituito nessun valore. La lista stessa viene modificata, senza bisogno di effettuare una assegnazione. Questo tipo di operazione viene chiamata “in-place”.
Ordinare una lista python in ordine decrescente
Se invece desideriamo un ordine inverso, ovvero, vogliamo che la lista sia ordinata in modo decrescente (dal più grande al più piccolo), dovremo specificare l’attributo revere=True al metodo sort().
Ecco il comando python per ordinare la lista in modo decrescente:
l.sort(reverse=True)
Il comando sopra indicato modificherà la lista nel seguente modo:
l = [5, 4, 3, 2, 1, 0]
Ordinare una lista di stringhe in ordine alfabetico in python
Quanto detto sopra non vale solo per le liste i cui elementi sono di tipo numerico. Anche le liste di stringhe possono essere ordinate mediante il metodo sort().
Supponiamo di avere una lista di stringhe definita in questo modo:
l = ["Luca", "Matteo", "Andrea"]
Per ordinare le stringhe della lista in ordina alfabetico basterà la seguente linea di codice.
l.sort()
Il comando sopra, applicato alla lista di stringhe, restituirà
l = [“Andrea”, “Luca”, “Matteo”]
ovvero la lista di stringhe di partenza, ma ordina in modo alfabetico.