Ordenar con Lambda en Python

Manav Narula 18 julio 2021
Ordenar con Lambda en Python

En Python, tenemos las funciones sorted() y sort() disponibles para ordenar una lista.

Estas funciones nos permiten ordenar la lista en el orden requerido. De forma predeterminada, podemos ordenar la lista en orden descendente o ascendente.

También podemos utilizar un parámetro en estas funciones, que es el parámetro key. Nos permite crear nuestro propio orden de clasificación. Podemos utilizar las funciones lambda en este parámetro, lo que nos permite crear nuestra propia función de una sola línea.

Por ejemplo,

lst = ["id01", "id10", "id02", "id12", "id03", "id13"]
lst_sorted = sorted(lst, key=lambda x: int(x[2:]))
print(lst_sorted)

Producción :

['id01', 'id02', 'id03', 'id10', 'id12', 'id13']

En el ejemplo anterior, tenemos una lista de IDs donde cada número tiene como prefijo las letras id. En el parámetro key, especificamos una función lambda especificando que tenemos que ignorar los dos primeros caracteres (id) y ordenar la lista.

También hay otras formas en las que podemos usar las funciones lambda para ordenar.

Por ejemplo,

lst = [("Mark", 1), ("Jack", 5), ("Jake", 7), ("Sam", 3)]
lst_sorted = sorted(lst, key=lambda x: x[1])
print(lst_sorted)

Producción :

[('Mark', 1), ('Sam', 3), ('Jack', 5), ('Jake', 7)]

En el ejemplo anterior, tenemos una lista de tuplas. La tupla consta de un nombre y un número. En la función lambda, especificamos la función a ordenar en función del segundo elemento de la tupla, es decir, el número.

Tenga en cuenta que podemos cambiar el orden a descendente utilizando el parámetro reverse y configurándolo en True.

Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Sort