Ordina un elenco di elenchi in Python

Samyak Jain 21 dicembre 2022
  1. Usa la funzione itemgetter() dal modulo operatore insieme alla funzione sorted() per ordinare un elenco di elenchi in Python
  2. Usa l’espressione lambda insieme alla funzione sorted() per ordinare un elenco di elenchi in Python
  3. Usa la funzione sort() per ordinare un elenco di elenchi in Python
Ordina un elenco di elenchi in Python

Un elenco è una delle strutture dati più potenti utilizzate in Python. Possiamo ordinare un elenco in Python disponendo tutti i suoi elementi in ordine crescente o decrescente in base al requisito.

Possiamo anche avere elenchi annidati in Python. Questi possono essere pensati come un elenco di elenchi. L’ordinamento di un elenco di elenchi dispone tutti gli elenchi interni in base all’indice specificato come chiave.

In questo tutorial, ordineremo un elenco di elenchi in Python in base ad alcuni indici.

Usa la funzione itemgetter() dal modulo operatore insieme alla funzione sorted() per ordinare un elenco di elenchi in Python

La funzione sorted() viene utilizzata per ordinare una lista in Python. Per impostazione predefinita, ordina la lista in ordine crescente. La funzione itemgetter() del modulo operatore prende un numero di indice come parametro e restituisce l’elemento dal set di dati posto in quel numero di indice.

Pertanto, la funzione sorted(List_name, key=itemgetter(index_number)) ordina un elenco di elenchi in base all’elemento posizionato al numero_indice specificato di ogni elenco interno.

Per esempio,

from operator import itemgetter

A = [[10, 8], [90, 2], [45, 6]]
print("Sorted List A based on index 0: % s" % (sorted(A, key=itemgetter(0))))
B = [[50, "Yes"], [20, "No"], [100, "Maybe"]]
print("Sorted List B based on index 1: % s" % (sorted(B, key=itemgetter(1))))

Produzione:

Sorted List A based on index 0: [[10, 8], [45, 6], [90, 2]]
Sorted List B based on index 1: [[100, 'Maybe'], [20, 'No'], [50, 'Yes']]

Per ordinare un elenco di elenchi in ordine decrescente, viene utilizzato il parametro reverse insieme al parametro key e il nome della lista nella funzione sorted().

Per esempio,

from operator import itemgetter

C = [[10, 8, "Cat"], [90, 2, "Dog"], [45, 6, "Bird"]]
print(
    "Reversed sorted List C based on index 1: % s"
    % (sorted(C, key=itemgetter(1), reverse=True))
)

Produzione:

Reverse sorted List C based on index 1: [[10, 8, 'Cat'], [45, 6, 'Bird'], [90, 2, 'Dog']]

Usa l’espressione lambda insieme alla funzione sorted() per ordinare un elenco di elenchi in Python

Le espressioni lambda sono semplici funzioni su una riga in Python.

La funzione sorted(List_name, key=lambda x:x[index_number]) è usata per ordinare una lista di liste in base all’elemento posizionato al index_number specificato di ogni lista interna.

Per esempio,

A = [[100, "Yes"], [40, "Maybe"], [60, "No"]]
print("Sorted List A based on index 0: % s" % (sorted(A, key=lambda x: x[0])))
B = [[2, "Dog"], [0, "Bird"], [7, "Cat"]]
print("Sorted List A based on index 1: % s" % (sorted(B, key=lambda x: x[1])))

Produzione:

Sorted List A based on index 0: [[40, 'Maybe'], [60, 'No'], [100, 'Yes']]
Sorted List B based on index 1: [[0, 'Bird'], [7, 'Cat'], [2, 'Dog']]

Allo stesso modo, possiamo usare il parametro reverse per ottenere l’output in ordine decrescente.

Per esempio,

C = [[60, 5], [90, 7], [30, 10]]
print(
    "Reversed sorted List C based on index 0: % s"
    % (sorted(C, key=lambda x: x[0], reverse=True))
)

Produzione:

Reversed sorted List C based on index 0: [[90, 7], [60, 5], [30, 10]]

Usa la funzione sort() per ordinare un elenco di elenchi in Python

Il metodo sort() ordina la lista di elenchi in Python in base al primo elemento di ogni elenco interno. Questo metodo apporta modifiche all’elenco originale stesso. Usiamo il parametro reverse per ordinare in ordine decrescente.

Per esempio,

A = [[55, 90], [45, 89], [90, 70]]
A.sort()
print("New sorted list A is % s" % (A))
A.sort(reverse=True)
print("New reverse sorted list A is % s" % (A))

Produzione:

New sorted list A is [[45, 89], [55, 90], [90, 70]]
New reverse sorted list A is [[90, 70], [55, 90], [45, 89]]

Per ordinare la lista dato in base alla lunghezza degli elenchi interni, viene utilizzato il parametro key=len.

Per esempio,

A = [[5, 90, "Hi", 66], [80, 99], [56, 32, 80]]
A.sort(key=len)
print("New sorted list A is % s" % (A))

Produzione:

New sorted list A is [[80, 99], [56, 32, 80], [5, 90, 'Hi', 66]]

Articolo correlato - Python List