Cómo ordenar listas en Python: guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Métodos para ordenar listas en Python: guía completa

Ordenar datos es una tarea fundamental en casi cualquier aplicación, desde el procesamiento de entradas de usuario hasta algoritmos complejos de análisis de datos. En Python, trabajar con listas es intuitivamente sencillo, y las herramientas de ordenación ofrecen flexibilidad y un gran poder.

Fundamentos de las listas en Python

Las listas en Python son colecciones ordenadas y mutables de objetos. Permiten almacenar elementos de diferentes tipos de datos y proporcionan un acceso cómodo a través de índices.

numeros = [5, 2, 9, 1, 5, 6]
palabras = ["banana", "manzana", "cereza"]
lista_mixta = [1, "hola", 3.14, True]

Métodos principales para ordenar listas

Python ofrece dos formas principales de ordenar listas: el método sort() y la función sorted(). Cada uno tiene sus propias características y casos de uso.

Método sort() — ordenación in situ

El método sort() modifica la lista original y devuelve None. Este enfoque es eficiente en memoria, ya que no crea una nueva lista.

numeros = [5, 2, 9, 1]
numeros.sort()
print(numeros)  # [1, 2, 5, 9]
Parámetros del método sort()

El método sort() acepta los siguientes parámetros:

  • reverse: define la dirección de la ordenación (True para descendente, False para ascendente)
  • key: función que determina el criterio de ordenación
numeros = [5, 2, 9, 1]
numeros.sort(reverse=True)
print(numeros)  # [9, 5, 2, 1]

Función sorted() — creación de una nueva lista

La función sorted() devuelve una nueva lista ordenada sin modificar la original. Esto es útil cuando necesitas conservar el orden original de los elementos.

numeros = [5, 2, 9, 1]
nueva_lista = sorted(numeros)
print(nueva_lista)  # [1, 2, 5, 9]
print(numeros)      # [5, 2, 9, 1] — la lista original no cambió
Ordenación descendente con sorted()
numeros = [5, 2, 9, 1]
orden_desc = sorted(numeros, reverse=True)
print(orden_desc)  # [9, 5, 2, 1]

Comparación de métodos de ordenación

Método Modifica la lista Devuelve un valor Uso recomendado
sort() Sí No (None) Cuando no necesitas el orden original
sorted() No Nueva lista Cuando necesitas conservar los datos originales

Ordenar cadenas de texto en listas

Ordenación alfabética

Al ordenar cadenas, Python utiliza el orden lexicográfico por defecto:

palabras = ["banana", "manzana", "cereza"]
palabras.sort()
print(palabras)  # ['banana', 'cereza', 'manzana']

Ordenación descendente

palabras = ["banana", "manzana", "cereza"]
palabras.sort(reverse=True)
print(palabras)  # ['manzana', 'cereza', 'banana']

Trabajar con mayúsculas y minúsculas al ordenar cadenas

Sensibilidad a mayúsculas

Por defecto, la ordenación distingue entre mayúsculas y minúsculas. Las letras mayúsculas van antes que las minúsculas en la tabla ASCII:

palabras = ["Banana", "manzana", "Cereza"]
print(sorted(palabras))  # ['Banana', 'Cereza', 'manzana']

Ignorar mayúsculas y minúsculas

Para ordenar sin distinguir entre mayúsculas y minúsculas, usa el parámetro key=str.lower:

palabras = ["Banana", "manzana", "Cereza"]
print(sorted(palabras, key=str.lower))  # ['Banana', 'Cereza', 'manzana']

Ordenar estructuras de datos complejas

Ordenar una lista de diccionarios

Blogs

Book Recommendations