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)
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)
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)
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)
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)
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)
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)
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)
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)
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.