Classificar uma lista de listas em Python

Samyak Jain 10 outubro 2023
  1. Use a função itemgetter() do Módulo do operador junto com a função sorted() para classificar uma lista de listas em Python
  2. Use a expressão lambda junto com a função sorted() para classificar uma lista de listas em Python
  3. Use a função sort() para classificar uma lista de listas em Python
Classificar uma lista de listas em Python

Uma lista é uma das estruturas de dados mais poderosas usadas em Python. Podemos classificar uma lista em Python organizando todos os seus elementos em ordem crescente ou decrescente com base no requisito.

Também podemos ter listas aninhadas em Python. Isso pode ser considerado uma lista de listas. Classificar uma lista de listas organiza todas as listas internas de acordo com o índice especificado como a chave.

Neste tutorial, classificaremos uma lista de listas em Python com base em alguns índices.

Use a função itemgetter() do Módulo do operador junto com a função sorted() para classificar uma lista de listas em Python

A função sorted() é usada para ordenar uma lista em Python. Por padrão, ele classifica a lista em ordem crescente. A função itemgetter() do módulo do operador recebe um número de índice como parâmetro e retorna o elemento do conjunto de dados colocado nesse número de índice.

Portanto, a função sorted(List_name, key=itemgetter(index_number)) classifica uma lista de listas pelo elemento posicionado no index_number especificado de cada lista interna.

Por exemplo,

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

Resultado:

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']]

Para classificar uma lista de listas em ordem decrescente, o parâmetro reverse é usado junto com o parâmetro key e o nome da lista na função sorted().

Por exemplo,

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

Resultado:

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

Use a expressão lambda junto com a função sorted() para classificar uma lista de listas em Python

As expressões lambda são funções simples de uma linha em Python.

A função sorted(List_name, key=lambda x:x[index_number]) é usada para ordenar uma lista de listas pelo elemento posicionado no index_number especificado de cada lista interna.

Por exemplo,

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

Resultado:

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']]

Da mesma forma, podemos usar o parâmetro reverse para obter a saída em ordem decrescente.

Por exemplo,

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

Resultado:

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

Use a função sort() para classificar uma lista de listas em Python

O método sort() classifica a lista de listas em Python de acordo com o primeiro elemento de cada lista interna. Este método faz alterações na própria lista original. Usamos o parâmetro reverse para classificar em ordem decrescente.

Por exemplo,

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

Resultado:

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

Para classificar a lista fornecida de acordo com o comprimento das listas internas, o parâmetro key=len é usado.

Por exemplo,

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

Resultado:

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

Artigo relacionado - Python List