8.1 Ordenamiento de lista
Ordenar una lista en Python es una operación importante que permite organizar los datos para analizarlos o presentarlos de manera conveniente. Python ofrece varias formas de ordenar listas, cada una de las cuales puede ser útil dependiendo de la tarea y resultados requeridos.
Método sort()
El método sort()
ordena la lista en su lugar, es decir, modifica la
lista original. Es muy eficiente y permite configurar el ordenamiento a través
de argumentos.
numbers = [5, 2, 9, 1]
numbers.sort()
print(numbers) # Imprimirá [1, 2, 5, 9]
Puedes ordenar una lista en orden inverso estableciendo el parámetro
reverse=True
.
numbers = [5, 2, 9, 1]
numbers.sort(reverse=True)
print(numbers) # Imprimirá [9, 5, 2, 1]
Función sorted()
La función sorted()
crea una nueva lista que es
una versión ordenada de la original. La lista original no se modifica,
lo que a menudo hace que sorted()
sea la opción preferida cuando
es necesario conservar los datos originales sin cambios.
numbers = [5, 2, 9, 1]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # Imprimirá [1, 2, 5, 9]
print(numbers) # La lista original no cambia [5, 2, 9, 1]
Es importante recordar que sort()
modifica la lista original, mientras que sorted()
devuelve una nueva lista ordenada, manteniendo la original sin cambios. Usa sort()
si necesitas modificar los datos en su lugar y sorted()
si quieres conservar el orden original de los datos.
8.2 Ordenamiento por clave
A veces se necesitan escenarios de ordenamiento más complejos, o ignorar
ciertos parámetros al ordenar. En este caso, nos ayuda el «ordenamiento por clave».
Para usarlo, necesitas pasar un parámetro especial — key
al método
sort()
o la función sorted()
.
Como valor del parámetro key
debes pasar una función,
que se usará para comparar elementos.
Comparación de cadenas sin considerar mayúsculas
Antes de comparar, todas las cadenas se convierten a minúsculas
alist = ["banana", "Orange", "Kiwi", "cherry"]
alist.sort(key=str.lower)
print(alist) # Imprimirá ['banana', 'cherry', 'Kiwi', 'Orange']
Ejemplo de ordenamiento de una lista de tuplas
Supongamos que tienes una lista de estudiantes, donde cada elemento es
una tupla (tuple)
, que contiene el nombre del estudiante y su nota. Quieres ordenar
a los estudiantes por sus calificaciones:
students = [('Alice', 88), ('Bob', 75), ('Carol', 96)]
def get_grade(student):
return student[1]
students.sort(key=get_grade)
print(students) # Imprimirá [('Bob', 75), ('Alice', 88), ('Carol', 96)]
Ejemplo de ordenamiento de una lista de diccionarios
O tienes una lista de diccionarios, donde cada diccionario contiene información sobre los estudiantes. Para ordenarlos por calificaciones, necesitas escribir un código como el siguiente:
students = [
{'name': 'Alice', 'grade': 88},
{'name': 'Bob', 'grade': 75},
{'name': 'Carol', 'grade': 96}
]
def get_grade(student):
return student['grade']
sorted_students = sorted(students, key=get_grade)
print(sorted_students) # Imprimirá [{'name': 'Bob', 'grade': 75}, {'name': 'Alice', 'grade': 88}, {'name': 'Carol', 'grade': 96}]
GO TO FULL VERSION