sorted() y la función key
Ordene números, cadenas y tuplas
sorted() y la función key es una lección gratuita de Competitive Programming Academy en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Competitive Programming Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Competitive Programming Academy incluye 4 lecciones en total.
Ordenar ayuda a ganar concursos
Muchos problemas de programación competitiva se vuelven sencillos cuando los datos están ordenados. Su primera herramienta es sorted(), que devuelve una nueva lista ordenada. 🏆
sorted() devuelve una copia
Llamar a sorted(nums) deja intacta la lista original y le entrega una nueva lista ordenada. Es ideal cuando todavía necesita la entrada más adelante.
nums = [3, 1, 2]
print(sorted(nums)) # [1, 2, 3]
print(nums) # [3, 1, 2]list.sort() ordena en el sitio
Cuando no necesita conservar el orden original, list.sort() ordena en el sitio y devuelve None. Ahorra memoria con arreglos grandes.
nums = [3, 1, 2]
nums.sort()
print(nums) # [1, 2, 3]El orden predeterminado es ascendente
De forma predeterminada, Python ordena de menor a mayor. Los números van de menor a mayor y las cadenas siguen el orden lexicográfico, carácter por carácter.
print(sorted(["pear", "apple", "kiwi"]))
# ['apple', 'kiwi', 'pear']Invierta el orden con reverse
Pase reverse=True para ordenar de mayor a menor. Es perfecto cuando un paso voraz necesita primero los elementos más grandes.
print(sorted([3, 1, 2], reverse=True))
# [3, 2, 1]Conozca la función key
El argumento key indica a sort cómo clasificar cada elemento. Python llama a key para cada elemento y ordena según los valores devueltos.
words = ["bb", "a", "ccc"]
print(sorted(words, key=len))
# ['a', 'bb', 'ccc']key con una lambda
Una pequeña lambda permite ordenar según cualquier expresión directamente en la línea. Aquí ordenamos los números según su distancia al cero.
vals = [-5, 2, -1, 3]
print(sorted(vals, key=lambda x: abs(x)))
# [-1, 2, 3, -5]Ordene objetos por un campo
Con tuplas o registros, haga que key apunte al campo importante. El resto del elemento se mantiene unido automáticamente.
people = [("Ann", 30), ("Bob", 25)]
print(sorted(people, key=lambda p: p[1]))
# [('Bob', 25), ('Ann', 30)]El ordenamiento es estable
El ordenamiento de Python es estable: los elementos con claves iguales conservan su orden relativo original. Esto permite encadenar ordenamientos para resolver empates de forma segura.
key supera la comparación manual
La key se calcula una vez por elemento, por lo que sigue siendo rápida con entradas grandes. Úsela en lugar de intercambiar elementos manualmente.
Ordenar cuesta O(n log n)
Python ordena en un tiempo de O(n log n). Para n de hasta unos cientos de miles, cabe cómodamente en un límite de un segundo.
Comprobación rápida
Necesita ordenar la lista, pero debe conservar intacta la original.
Resumen
Puede ordenar los datos con sorted() o en el sitio, invertir el orden con reverse y clasificar cualquier elemento mediante una key. El ordenamiento estable mantiene los empates en orden. 🎉
Preguntas frecuentes
¿La lección «sorted() y la función key» es gratis?
Sí — el texto completo de «sorted() y la función key» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Competitive Programming Academy, actualiza a CoddyKit PRO. El curso de Competitive Programming Academy incluye 4 lecciones en total.
¿Qué aprenderé en «sorted() y la función key»?
Ordene números, cadenas y tuplas Practicas Competitive Programming Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Competitive Programming Academy?
No se requiere experiencia previa. Competitive Programming Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «sorted() y la función key»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Competitive Programming Academy?
Sí. Cada lección de Competitive Programming Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- sorted() y la función key
- Ordene por varios campos
- Orden personalizado con functools.cmp_to_key
- Por qué ordenar primero desbloquea soluciones