Ordenar una lista de listas en Python

Samyak Jain 10 octubre 2023
  1. Utilice la función itemgetter() del módulo del operador junto con la función sorted() para ordenar una lista de listas en Python
  2. Utilice la expresión lambda junto con la función sorted() para ordenar una lista de listas en Python
  3. Utilice la función sort() para ordenar una lista de listas en Python
Ordenar una lista de listas en Python

Una lista es una de las estructuras de datos más poderosas que se utilizan en Python. Podemos ordenar una lista en Python organizando todos sus elementos en orden ascendente o descendente según el requisito.

También podemos tener listas anidadas en Python. Se pueden considerar como una lista de listas. La clasificación de una lista de listas organiza todas las listas internas de acuerdo con el índice especificado como clave.

En este tutorial, ordenaremos una lista de listas en Python en función de algunos índices.

Utilice la función itemgetter() del módulo del operador junto con la función sorted() para ordenar una lista de listas en Python

La función sorted() se utiliza para ordenar una lista en Python. De forma predeterminada, ordena la lista en orden ascendente. La función itemgetter() del módulo operador toma un número de índice como parámetro y devuelve el elemento del conjunto de datos colocado en ese número de índice.

Por lo tanto, la función sorted(List_name, key=itemgetter(index_number)) ordena una lista de listas por el elemento posicionado en el índice especificado de cada lista interna.

Por ejemplo,

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

Producción :

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 ordenar una lista de listas en orden descendente, el parámetro reverse se utiliza junto con el parámetro key, y el nombre de la lista en la función sorted().

Por ejemplo,

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

Producción :

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

Utilice la expresión lambda junto con la función sorted() para ordenar una lista de listas en Python

Las expresiones lambda son funciones simples de una línea en Python.

La función sorted(List_name, key=lambda x:x[index_number]) se usa para ordenar una lista de listas por el elemento posicionado en el índice especificado de cada lista interna.

Por ejemplo,

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

Producción :

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

De manera similar, podemos usar el parámetro reverse para obtener la salida en orden descendente.

Por ejemplo,

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

Producción :

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

Utilice la función sort() para ordenar una lista de listas en Python

El método sort() ordena la lista de listas en Python de acuerdo con el primer elemento de cada lista interna. Este método realiza cambios en la propia lista original. Usamos el parámetro reverse para ordenar en orden descendente.

Por ejemplo,

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

Producción :

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

Para ordenar la lista dada según la longitud de las listas internas, se utiliza el parámetro key=len.

Por ejemplo,

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

Producción :

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

Artículo relacionado - Python List