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:

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í:

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:

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.

1 comentario en “Ordenar listas en Python”

Dejar un comentario