Ordenar datos de manera eficiente
Parte de la sección Logic & Flow del Journey de Python de Coddy — lección 48 de 78.
El ordenamiento es una operación fundamental en las ciencias de la computación, y Python ofrece potentes herramientas integradas para ordenar datos de manera eficiente. La función principal para ordenar es sorted(), que se puede utilizar para ordenar varios tipos de datos, incluyendo números, cadenas y objetos más complejos.
Ordenamiento básico:
La función sorted() toma un iterable (por ejemplo, una lista, tupla o conjunto) como argumento y devuelve una nueva lista que contiene los elementos ordenados. Por defecto, ordena en orden ascendente.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
print(sorted_numbers)
# Salida: [1, 1, 2, 3, 4, 5, 6, 9]En este ejemplo, sorted() ordena la lista numbers en orden ascendente.
Ordenamiento inverso:
Para ordenar en orden descendente, puedes usar el parámetro reverse y establecerlo en True.
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers_desc = sorted(numbers, reverse=True)
print(sorted_numbers_desc)
# Salida: [9, 6, 5, 4, 3, 2, 1, 1]Aquí, sorted() ordena la lista numbers en orden descendente.
Ordenando cadenas:
La función sorted() también puede ordenar cadenas basándose en su orden lexicográfico (es decir, el orden en el que aparecerían en un diccionario).
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
print(sorted_words)
# Salida: ['apple', 'banana', 'cherry']En este ejemplo, sorted() ordena la lista words en orden alfabético.
Ordenación personalizada con la función key:
Para necesidades de ordenación más complejas, puede utilizar el parámetro key para especificar una función que determine el orden de clasificación. La función key se aplica a cada elemento antes de la ordenación y los valores devueltos se utilizan para la comparación.
words = ["banana", "kiwi", "fig"]
sorted_words_by_length = sorted(words, key=len)
print(sorted_words_by_length)
# Salida: ['fig', 'kiwi', 'banana']En este caso, sorted() ordena la lista words basándose en la longitud de cada palabra, utilizando la función len() como key.
Desafío
FácilEscribe un programa que realice las siguientes tareas de ordenación utilizando la función sorted():
- Ordena una lista de números en orden ascendente.
- Ordena la misma lista de números en orden descendente.
- Ordena una lista de cadenas en orden alfabético.
- Ordena la misma lista de cadenas basándote en su longitud.
Hoja de referencia
La función sorted() ordena datos y devuelve una nueva lista con los elementos ordenados.
Ordenación básica (orden ascendente):
numbers = [3, 1, 4, 1, 5, 9, 2, 6]
sorted_numbers = sorted(numbers)
# Salida: [1, 1, 2, 3, 4, 5, 6, 9]Ordenación inversa (orden descendente):
sorted_numbers_desc = sorted(numbers, reverse=True)
# Salida: [9, 6, 5, 4, 3, 2, 1, 1]Ordenación de cadenas alfabéticamente:
words = ["apple", "banana", "cherry"]
sorted_words = sorted(words)
# Salida: ['apple', 'banana', 'cherry']Ordenación personalizada con una función clave:
sorted_words_by_length = sorted(words, key=len)
# Ordena por la longitud de la cadenaPruébalo tú mismo
# Entradas iniciales
numbers = [5, 3, 8, 1, 2]
words = ["elephant", "cat", "dolphin", "bee"]
# Tarea 1: Ordenar números en orden ascendente
# Tarea 2: Ordenar números en orden descendente
# Tarea 3: Ordenar palabras alfabéticamente
# Tarea 4: Ordenar palabras por longitud
# Reemplaza 'pass' con tu código para cada tarea
ascending_numbers = None
descending_numbers = None
alphabetical_words = None
length_sorted_words = None
# Imprimir los resultados
print("Ascending:", ascending_numbers)
print("Descending:", descending_numbers)
print("Alphabetical:", alphabetical_words)
print("By Length:", length_sorted_words)Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Logic & Flow
1Exploración de variables
ConstantesAsignación de múltiples variablesIntercambio de variablesVariables de marcador de posiciónRedondear númerosCasting de listas4Aplicación de Agenda de Contactos
Mostrar MenúAgregar Contacto7Conjuntos Parte 2
Operaciones matemáticas Parte 1Operaciones matemáticas Parte 2Resumen - Búsqueda del tesoroSubconjuntos y superconjuntosIterar sobre conjuntosResumen - Rastreador de torneos10Comprensión de listas básica
La sintaxisCreación de listas simplesAñadir condicionesUso de agregación de datosResumen - La casa de las listasResumen - Elementos de libertad13Sistema de Gestión de Inventarios
Descripción general del proyectoAgregar artículo2Diccionarios Parte 1
¿Qué es un diccionario?Crear un diccionarioAcceder a los valoresModificar diccionariosResumen - Gestor de recetas5Toma de decisiones avanzada
Operador ternarioComprobaciones de pertenenciaComprobaciones de identidadErrores de sangríaRepaso - Filtro de vacaciones8Gestor de registros de estudiantes
Descripción general del proyectoAñadir estudiante11Funciones avanzadas
Retornar múltiples valoresFunciones Lambda Parte 1Funciones Lambda Parte 2Desafío de repaso - Lambda SortFunciones recursivas Parte 1Funciones recursivas Parte 2Repaso - Sumar listas anidadas14Funciones de orden superior
La función MapLa función FilterRepaso - Validador de emailsRepaso - Procesador de números3Diccionarios Parte 2
Métodos de diccionariosDiccionarios anidadosVerificación de clavesIterar sobre diccionariosResumen - Contador de frecuencia6Conjuntos - Parte 1
¿Qué es un conjunto?Operaciones básicasMétodos de conjuntosResumen - Eliminar duplicados9Agregación de datos avanzada
Uso de SumBúsqueda de mínimo y máximoOrdenar datos de manera eficienteRepaso - Ordenador de diccionarios