python

Python: ordenar arreglo especificando clave

En este post te mostraré cómo ordenar un arreglo o lista en Python especificando la clave de comparación. Es decir, ordenar un arreglo complejo especificando cómo comparar los valores para ordenarlos.

Esto también es conocido como ordenar una lista especificando una función de comparación o compare function, solo que presta atención, aquí vamos a especificar la clave, cosa que al final tendrá el mismo resultado para ordenar un arreglo de manera personalizada.

Ordenar lista con comparación personalizada

Para ordenar el arreglo con una comparación propia, invocamos a la función sorted. Esta función recibe la lista, y la devuelve ordenada.

Podemos especificar la función que devuelve el valor tomado en cuenta al ordenar, en el argumento key. La sintaxis básica es:

See the gist on github.

A la función se le pasará el valor del arreglo, y nosotros debemos devolver cuál valor se toma en cuenta al ordenar. Vamos a ver un ejemplo.

Ejemplo: ordenar lista en Python con comparador propio

Primero tenemos nuestra lista de Python. Si te fijas, tiene diccionarios dentro de ella. Esto solo es para ejemplificar, ya que podría tener objetos, otros arreglos, etcétera.

See the gist on github.

En este caso cada juego tiene un nombre y una calificación. Entonces para ordenar por calificación debemos tomar en cuenta esa clave:

See the gist on github.

Justo en esta función es en donde especificamos el orden. Si, por ejemplo, quisiéramos ordenar por nombre, sería:

return juego["nombre"]

Finalmente ordenamos la lista con sorted, especificando la función de comparación, que como lo dije, simplemente devuelve la clave:

See the gist on github.

Por cierto, también se puede ordenar en orden inverso:

See the gist on github.

Poniendo todo junto

El código completo queda así:

See the gist on github.

Si quieres puedes ejecutarlo en línea.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Imprimir PDF con Bot de Telegram

La impresión de un PDF en cualquier impresora se puede automatizar con un bot de…

2 días hace

Enviar mensaje con bot de Telegram usando JavaScript (lado del cliente)

Hoy te enseñaré cómo enviar un mensaje a un usuario desde un bot de Telegram…

3 días hace

PHP: incrustar imagen en base64

El día de hoy te enseñaré algo muy sencillo pero útil al programar con PHP:…

3 días hace

Plugin ESC POS – Actualización 3.4.0: imprimir HTML

El plugin para imprimir en impresoras térmicas alcanza hoy su versión 3.4.0 agregando soporte para…

4 días hace

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

2 semanas hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

2 semanas hace

Esta web usa cookies.