CodeGym /Curso de Java /Python SELF ES /Ordenamiento de listas

Ordenamiento de listas

Python SELF ES
Nivel 7 , Lección 8
Disponible

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}]
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION