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:

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.

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

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:

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

Poniendo todo junto

El código completo queda así:

Si quieres puedes ejecutarlo en línea.


Relacionado:  Intercambiar dos enteros sin usar una variable temporal

Estoy disponible para trabajar en tu proyecto o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.
Si el post fue de tu agrado muestra tu apoyo compartiéndolo, suscribiéndote al blog, siguiéndome o realizando una donación.

Suscribir por correo

Ingresa tu correo y recibirás mis últimas entradas sobre programación, open source, bases de datos y todo lo relacionado con informática

Únete a otros 608 suscriptores


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/

0 Comments

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

A %d blogueros les gusta esto: