Ordina l'lista delle tuple in Python

Vaibhhav Khetarpal 30 gennaio 2023
  1. Usa la funzione list.sort() per ordinare l’lista delle tuple in Python
  2. Usa l’algoritmo di ordinamento delle bolle per ordinare l’lista delle tuple in Python
Ordina l'lista delle tuple in Python

In Python, più elementi possono essere memorizzati in una singola variabile utilizzando le tuple. Una lista di tuple può essere ordinato come una lista di numeri interi.

Questo tutorial discuterà diversi metodi per ordinare una lista di tuple in base al primo, secondo o iesimo elemento nelle tuple.

Usa la funzione list.sort() per ordinare l’lista delle tuple in Python

La funzione list.sort() ordina gli elementi di una lista in ordine crescente o decrescente. Il suo parametro key specifica il valore da utilizzare nell’ordinamento. key deve essere una funzione o altri invocabili che potrebbero essere applicati a ciascun elemento della lista.

Il codice seguente ordina le tuple in base al secondo elemento in tutte le tuple.

list_students = [
    ("Vaibhhav", 86),
    ("Manav", 91),
    ("Rajesh", 88),
    ("Sam", 84),
    ("Richie", 89),
]

# sort by second element of tuple
list_students.sort(key=lambda x: x[1])  # index 1 means second element

print(list_students)

Produzione:

[('Sam',84), ('Vaibhhav',86), ('Rajesh',88), ('Richie',89), ('Manav',91)]

L’ordine può essere invertito in decrescente impostando il parametro reverse del metodo sort() su True.

Il codice seguente ordina l’lista delle tuple in ordine decrescente utilizzando il parametro reverse.

list_students = [
    ("Vaibhhav", 86),
    ("Manav", 91),
    ("Rajesh", 88),
    ("Sam", 84),
    ("Richie", 89),
]

# sort by second element of tuple
list_students.sort(key=lambda x: x[1], reverse=True)

print(list_students)

Produzione:

[('Manav',91), ('Richie',89), ('Rajesh',88), ('Vaibhhav',86), ('Sam',84)]

Usa l’algoritmo di ordinamento delle bolle per ordinare l’lista delle tuple in Python

Bubble Sort è uno degli algoritmi di ordinamento più semplici; funziona scambiando gli elementi adiacenti in una lista se sono nell’ordine sbagliato e ripete questo passaggio fino a quando l’lista non viene ordinato.

Il codice seguente ordina le tuple in base al secondo elemento e utilizza l’algoritmo di ordinamento delle bolle.

list_ = [("Vaibhhav", 86), ("Manav", 91), ("Rajesh", 88), ("Sam", 84), ("Richie", 89)]

# sort by second element of tuple
pos = 1
list_length = len(list_)

for i in range(0, list_length):
    for j in range(0, list_length - i - 1):
        if list_[j][pos] > list_[j + 1][pos]:
            temp = list_[j]
            list_[j] = list_[j + 1]
            list_[j + 1] = temp

print(list_)

Produzione:

[('Sam',84), ('Vaibhhav',86), ('Rajesh',88), ('Richie',89), ('Manav',91)]

La variabile pos specifica la posizione in base alla quale deve essere effettuato l’ordinamento, che in questo caso è il secondo elemento.

Possiamo anche usare il primo elemento per ordinare l’lista delle tuple. Il seguente programma implementa questo.

list_ = [("Vaibhhav", 86), ("Manav", 91), ("Rajesh", 88), ("Sam", 84), ("Richie", 89)]

# sort by first element of tuple
pos = 0
list_length = len(list_)
for i in range(0, list_length):
    for j in range(0, list_length - i - 1):
        if list_[j][pos] > list_[j + 1][pos]:
            temp = list_[j]
            list_[j] = list_[j + 1]
            list_[j + 1] = temp

print(list_)

Produzione:

[('Manav',91), ('Rajesh',88), ('Richie',89), ('Sam',84), ('Vaibhhav',86)]
Vaibhhav Khetarpal avatar Vaibhhav Khetarpal avatar

Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.

LinkedIn

Articolo correlato - Python Tuple