Saltar al contenido

¿Cómo ordenar listas en Python con sort() y sorted()? Guía fácil y ejemplos prácticos

26/04/2025
¿Cómo ordenar listas con sort() y sorted()?
Compartir:
Índice de Contenido

Introducción a la ordenación de listas en Python

En Python, ordenar listas es una tarea muy común y sencilla gracias a las funciones sort() y sorted(). Estas dos formas permiten organizar elementos de manera ascendente o descendente, ya sean números, cadenas de texto o incluso objetos personalizados. En esta guía fácil aprenderás cómo ordenar listas en Python utilizando ambos métodos, con explicaciones paso a paso y ejemplos prácticos.

Diferencias clave entre sort() y sorted()

Antes de ver cómo ordenar listas con sort() y sorted(), es importante conocer sus diferencias principales:

  • sort() es un método de lista que modifica la lista original en su lugar (ordenación in-place) y no retorna una nueva lista.
  • sorted() es una función incorporada que retorna una nueva lista ordenada y no altera la original.

Ambas permiten ordenar en orden ascendente (por defecto) o descendente y pueden recibir argumentos adicionales para personalizar la ordenación.

Cómo ordenar listas con sort()

Ordenación básica con sort()

El método sort() se usa directamente sobre una lista. Por ejemplo, para ordenar una lista de números:

numeros = [5, 2, 9, 1, 5, 6]
numeros.sort()
print(numeros)  # Resultado: [1, 2, 5, 5, 6, 9]

Como puedes ver, la lista original ha cambiado después de usar sort().

Orden descendente con sort()

Si deseas ordenar de mayor a menor, utiliza el argumento reverse=True:

numeros = [5, 2, 9, 1, 5, 6]
numeros.sort(reverse=True)
print(numeros)  # Resultado: [9, 6, 5, 5, 2, 1]

Ordenar listas de cadenas con sort()

También puedes ordenar listas de cadenas alfabéticamente:

palabras = [manzana, pera, banana, uva]
palabras.sort()
print(palabras)  # Resultado: [banana, manzana, pera, uva]

Cómo ordenar listas en Python con sorted()

Uso básico de sorted()

La función sorted() recibe una lista (o cualquier iterable) y devuelve una nueva lista ordenada:

numeros = [8, 3, 1, 7]
nueva_lista = sorted(numeros)
print(nueva_lista)   # Resultado: [1, 3, 7, 8]
print(numeros)       # La lista original sigue igual: [8, 3, 1, 7]

Esto es útil cuando no quieres modificar la lista original.

Orden descendente con sorted()

Al igual que sort(), sorted() acepta el argumento reverse=True:

numeros = [8, 3, 1, 7]
descendente = sorted(numeros, reverse=True)
print(descendente)  # Resultado: [8, 7, 3, 1]

Ordenar cualquier iterable con sorted()

Quizás también te interese:  ¿Cómo usar print() e input() en Python para entrada y salida básica? Guía fácil para principiantes

sorted() funciona también con tuplas y otros iterables:

tupla = (4, 2, 9, 1)
ordenada = sorted(tupla)
print(ordenada)  # Resultado: [1, 2, 4, 9]

Personalizar la ordenación con el parámetro key

Tanto sort() como sorted() permiten ordenar usando una función personalizada gracias al parámetro key. Esto es útil cuando trabajas con listas de objetos o necesitas un criterio especial.

Ejemplo: Ordenar por longitud de cadenas

palabras = [Python, es, genial, y, potente]
palabras.sort(key=len)
print(palabras)  # Resultado: [y, es, Python, genial, potente]

Ejemplo: Ordenar listas de diccionarios

Supón que tienes una lista de diccionarios y quieres ordenarla por el valor de una clave:

personas = [
    {nombre: Ana, edad: 30},
    {nombre: Luis, edad: 25},
    {nombre: Carlos, edad: 35}
]
ordenadas = sorted(personas, key=lambda x: x[edad])
print(ordenadas)
# Resultado: [{nombre: Luis, edad: 25}, {nombre: Ana, edad: 30}, {nombre: Carlos, edad: 35}]

¿Cuándo usar sort() y cuándo sorted()?

  • Usa sort() si quieres modificar la lista original y no necesitas conservar el orden anterior.
  • Elige sorted() si necesitas una nueva lista ordenada y mantener la original intacta.
  • sorted() es más flexible porque funciona con cualquier iterable, no solo listas.

Consejos y buenas prácticas

  • Para ordenaciones complejas, usa el argumento key para definir una función que devuelva el valor por el que deseas ordenar.
  • Recuerda que sort() retorna None. Si necesitas la lista ordenada, simplemente accede a la lista original después de ordenarla.
  • Si necesitas ordenar de forma estable (mantener el orden relativo de los elementos iguales), tanto sort() como sorted() lo hacen por defecto en Python.


Resumen

Quizás también te interese:  ¿Cómo formatear strings en Python con f-strings, .format() y % paso a paso?

En conclusión, ordenar listas en Python es muy sencillo gracias a sort() y sorted(). Elige el método adecuado según si quieres modificar la lista original o no, y aprovecha el parámetro key para personalizar la ordenación. Practica con los ejemplos prácticos mostrados para dominar la ordenación de listas en Python.

Compartir: