python

Ordenar listas en Python

En este post vamos a ver distintos métodos y formas de ordenar arreglos o listas en el lenguaje de programación Python.

No vamos a ver cuál es más eficiente, solo vamos a ver los métodos nativos y los métodos manuales, aunque me parece que los métodos nativos (algoritmo Timsort) serán más rápidos y eficientes la mayoría de veces.

Ordenar listas en Python

Nota: como en otros tutoriales de Python, en este caso me referiré a lista y arreglo como lo mismo.

Ordenar usando sort

La forma más fácil y eficiente de ordenar un arreglo en Python es usando funciones nativas. Comencemos viendo la función sort. Esta función modifica internamente a la lista, de modo que no debemos esperar el valor de retorno.

La función ordena listas de datos primitivos como enteros, flotantes y cadenas. La sintaxis es:

lista.sort()

Te repito que la función no devuelve nada; ordena internamente al arreglo. Veamos el siguiente ejemplo:

See the gist on github.

Como se puede observar en la salida, al invocar a sort tendremos el arreglo ya ordenado. Esto no nos conviene si queremos preservar el original, pero para ello veremos una función a continuación.

Puedes probar el código en este enlace.

Sobre sorted: ordenar y regresar arreglo

Ahora veamos la función sorted. Esta función igualmente es nativa pero no modifica a la lista; sino que regresa el resultado. Funciona así:

See the gist on github.

El ordenamiento es el mismo, lo que cambia es que esta función no ordena internamente, sino que lo ordena y regresa la copia ordenada.

Otra cosa distinta es que en este caso la función no es invocada a partir del arreglo, sino que se le envía el arreglo a la función.

Puedes probar el código en este enlace.

Orden inverso

Por defecto, la función sorted y sort ordenan de manera ascendente; es decir, de menor a mayor ya sea numérica o alfabéticamente. Para invertir el orden podemos pasar la opción reverse.

Veamos el siguiente ejemplo:

See the gist on github.

En este caso indicando el argumento reverse en True, el arreglo será ordenado de manera inversa, es decir, descendente o de mayor a menor, tanto para strings como para enteros y flotantes.

Pruébalo acá.

Otras funciones de ordenamiento

Hasta el momento hemos visto cómo ordenar arreglos usando sort y sorted, ya sea de enteros o cadenas y de manera ascendente o descendente.

Sin embargo la vida real es más compleja así que te dejo otros tutoriales si por ejemplo tu profesor te solicita implementar el algoritmo quicksort, burbuja, merge sort o selección. También puede que quieras ordenar un arreglo complejo, por ejemplo, uno de diccionarios.

Te dejo también más tutoriales de Python.

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/

Ver comentarios

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

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

3 días hace

PHP y JavaScript: llenar select con AJAX

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

3 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

4 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

1 semana hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

1 semana hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.