Classificar lista de tuplas em Python

  1. Use a função list.sort() para ordenar a lista de tuplas em Python
  2. Use o algoritmo de classificação de bolha para classificar a lista de Tuplas em Python

Em Python, vários itens podem ser armazenados em uma única variável usando tuplas. Uma lista de tuplas pode ser classificada como uma lista de inteiros.

Este tutorial irá discutir diferentes métodos para classificar uma lista de tuplas com base no primeiro, segundo ou iésimo elemento nas tuplas.

Use a função list.sort() para ordenar a lista de tuplas em Python

A função list.sort() classifica os elementos de uma lista em ordem crescente ou decrescente. Seu parâmetro key especifica o valor a ser usado na classificação. Chave deve ser uma função ou outros chamáveis ​​que podem ser aplicados a cada elemento da lista.

O código a seguir classifica as tuplas com base no segundo elemento em todas as tuplas.

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)

Resultado:

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

A ordem pode ser revertida para decrescente definindo o parâmetro reverse do método sort() como True.

O código a seguir classifica a lista de tuplas em ordem decrescente usando o parâmetro 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)

Resultado:

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

Use o algoritmo de classificação de bolha para classificar a lista de Tuplas em Python

Bubble Sort é um dos algoritmos de classificação mais simples; ele funciona trocando os elementos adjacentes em uma lista se eles estiverem na ordem errada e repete esta etapa até que a lista seja classificada.

O código a seguir classifica as tuplas com base no segundo elemento e usa o algoritmo de classificação de bolha.

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_)

Resultado:

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

A variável pos especifica a posição pela qual a classificação deve ser realizada, que neste caso, é o segundo elemento.

Também podemos usar o primeiro elemento para classificar a lista de tuplas. O programa a seguir implementa isso.

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_)

Resultado:

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

Artigo relacionado - Python Tuple

  • Anexar a um tupla em Python
  • Converter lista em tupla em Python