Ordenar listas en Python

Para ordenar listas en Python, puedes utilizar el método sort() o la función sorted() . Ambos enfoques te permiten ordenar los elementos de una lista en orden ascendente o descendente.

En Ordenar listas en Python verás el concepto explicado en lenguaje claro y un ejemplo que puedes ejecutar en el editor de The Data Schools.

Modifica el código del ejemplo antes de pasar a la siguiente lección: la experimentación fija mejor el aprendizaje que leer pasivamente.

Ordenar listas con el método sort()

Aquí tienes unos ejemplos de cómo hacerlo:

Ejemplo

    # Lista original
numeros = [3, 1, 5, 2, 4]

# Ordenar la lista en orden ascendente
numeros.sort()

# Resultado: [1, 2, 3,
# Resultado: [1, 2, 3, 4, 5]
print(numeros)

# Ordenar la
# Ordenar la lista en orden descendente
numeros.sort(reverse=True)

# Resultado:
# Resultado: [5, 4, 3, 2, 1]
print(numeros)
  
Abrir en editor

Ordenar listas con la función sorted()

Ejemplo para ordenar listas con sorted() :

Ejemplo

    # Lista original
frutas = ["banana", "manzana", "naranja", "pera", "uva"]

# Ordenar la lista en orden ascendente
frutas_ordenadas # Ordenar la lista en orden ascendente
frutas_ordenadas = sorted(frutas)

# Re
# Resultado: ['banana', 'manzana', 'naranja', 'pera', 'uva']
print(frutas_ordenadas)

# Ordenar la lista en orden descende
# Ordenar la lista en orden descendente
frutas_ordenadas_desc = sorted(frutas, reverse=True)

# Resultado: ['uva', 'pera', 'naranja', 'manzana', 'banana']
print(frutas_ordenadas_desc)
  
Abrir en editor

En ambos casos, el método sort() y la función sorted() ordenan la lista original, pero el método sort() modifica la lista original, mientras que la función sorted() devuelve una nueva lista ordenada sin modificar la original.

Ordenar lista alfanuméricamente en Python

Ordenar una lista alfanuméricamente significa ordenar los elementos teniendo en cuenta tanto caracteres alfabéticos como numéricos. Por ejemplo, si tienes una lista que contiene cadenas con números y letras, el orden alfanumérico considerará primero los caracteres alfabéticos y luego los numéricos.

Ejemplo

    # Lista original alfanumérica
lista_alfanumerica = ["b", "a", "10", "3", "1", "c"]

# Ordenar alfanuméricamente
lista_alfanumerica.sort()

# Resultado: ['1', '10', '3', 'a', 'b', 'c']
print(lista_alfanumerica)
  

Orden descendente en Python

Para obtener una lista ordenada en orden descendente, puedes utilizar el parámetro reverse=True con el método sort() o con la función sorted() .

Ejemplo

    # Lista original
numeros = [3, 1, 5, 2, 4]
# Ordenar en orden descendente con sort()
numeros.sort(reverse=True)
# Resultado: [
# Resultado: [5, 4, 3, 2, 1]
print(numeros)
# Ordenar en
# Ordenar en orden descendente con sorted()
numeros_desc = sorted(numeros, reverse=True)
# Resultado: [5, 4, 3, 2, 1]
print(numeros_desc)
  

Personalizar la función de clasificación

Puedes personalizar la función de clasificación utilizando el parámetro key en la función sorted() o el método sort() . Key es una función que toma cada elemento de la lista y devuelve un valor que se utilizará para ordenar los elementos.

Ejemplo

    # Lista original de cadenas
nombres = ["Ana", "Carlos", "Juan", "María"]

# Ordenar por la longitud de las cadenas
nombres_ordenados = sorted(nombres, key=len)

# Resultado: ['Ana', 'Juan', 'María', 'Carlos']
print(nombres_ordenados)
  
Abrir en editor

Clasificación insensible a mayúsculas y minúsculas en listas en Python

Puedes realizar una clasificación insensible a mayúsculas y minúsculas utilizando el parámetro Key con una función que convierte todos los elementos a minúsculas antes de realizar la clasificación.

Ejemplo

    x = 10
# Lista original con cadenas en mayúsculas y minúsculas
frutas = ["manzana", "NARANJA", "uva", "Piña"]
# Ordena
# Ordenar insensiblemente a mayúsculas y minúsculas
frutas_ordenadas = sorted(frutas, key=lambda x: x.lower())
# Resultado: ['manzana', 'NARANJA', 'Piña', 'uva']
print(frutas_ordenadas)
  

Invertir orden de las listas en Python

Para Invertir orden de una lista en Python, puedes usar el método reverse() después de haber ordenado la lista.

Ejemplo

    # Lista original
numeros = [3, 1, 5, 2, 4]

# Ordenar la lista en orden ascendente
numeros.sort()

# Resultado: [1, 2, 3,
# Resultado: [1, 2, 3, 4, 5]
print(numeros)

# Ordenar la
# Ordenar la lista en orden descendente
numeros.sort(reverse=True)

# Resultado:
# Resultado: [5, 4, 3, 2, 1]
print(numeros)
  

Practica Ordenar listas en Python en el editor

Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.

Ejercicio: Aquí tienes unos ejemplos de cómo hacerlo

Aquí tienes unos ejemplos de cómo hacerlo.

Ejemplo

    # Lista original
numeros = [3, 1, 5, 2, 4]

# Ordenar la lista en orden ascendente
numeros.sort()

# Resultado: [1, 2, 3,
# Resultado: [1, 2, 3, 4, 5]
print(numeros)

# Ordenar la
# Ordenar la lista en orden descendente
numeros.sort(reverse=True)

# Resultado:
# Resultado: [5, 4, 3, 2, 1]
print(numeros)
  
Abrir en editor

Ejercicio: Para ordenar listas con

Ejemplo para ordenar listas con sorted().

Ejemplo

    # Lista original
frutas = ["mango", "pera", "fresa", "pera", "fresa"]

# Ordenar la lista en orden ascendente
frutas_ordenadas # Ordenar la lista en orden ascendente
frutas_ordenadas = sorted(frutas)

# Re
# Resultado: ['mango', 'pera', 'fresa', 'pera', 'fresa']
print(frutas_ordenadas)

# Ordenar la lista en orden descende
# Ordenar la lista en orden descendente
frutas_ordenadas_desc = sorted(frutas, reverse=True)

# Resultado: ['fresa', 'pera', 'fresa', 'pera', 'mango']
print(frutas_ordenadas_desc)
  
Abrir en editor

Ejercicio: Usar print()

Para obtener una lista ordenada en orden descendente, puedes utilizar el parámetro reverse=True con el método sort() o con la función.

Ejemplo

    # Lista original
numeros = [3, 1, 5, 2, 4]
# Ordenar en orden descendente con sort()
numeros.sort(reverse=True)
# Resultado: [
# Resultado: [5, 4, 3, 2, 1]
print(numeros)
# Ordenar en
# Ordenar en orden descendente con sorted()
numeros_desc = sorted(numeros, reverse=True)
# Resultado: [5, 4, 3, 2, 1]
print(numeros_desc)
  
Abrir en editor

Ejercicio: Lista original alfanumérica

Puedes personalizar la función de clasificación utilizando el parámetro key en la función sorted() o el método sort().

Ejemplo

    # Lista original alfanumérica
lista_alfanumerica = ["b", "a", "10", "3", "1", "c"]

# Ordenar alfanuméricamente
lista_alfanumerica.sort()

# Resultado: ['1', '10', '3', 'a', 'b', 'c']
print(lista_alfanumerica)
  
Abrir en editor

Ejercicio: Función lambda

Puedes realizar una clasificación insensible a mayúsculas y minúsculas utilizando el parámetro Key con una función que convierte todos los elementos a minúscula.

Ejemplo

    x = 10
# Lista original con cadenas en mayúsculas y minúsculas
frutas = ["pera", "NARANJA", "fresa", "Piña"]
# Ordena
# Ordenar insensiblemente a mayúsculas y minúsculas
frutas_ordenadas = sorted(frutas, key=lambda x: x.lower())
# Resultado: ['pera', 'NARANJA', 'Piña', 'fresa']
print(frutas_ordenadas)
  
Abrir en editor

Ejercicio: Usar print() (2)

Para Invertir orden de una lista en Python, puedes usar el método reverse() después de haber ordenado la lista.

Ejemplo

    # Lista original de cadenas
nombres = ["Ana", "Carlos", "Juan", "María"]

# Ordenar por la longitud de las cadenas
nombres_ordenados = sorted(nombres, key=len)

# Resultado: ['Ana', 'Juan', 'María', 'Carlos']
print(nombres_ordenados)
  
Abrir en editor

Comprueba lo aprendido

Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.