- Code En Español
- Posts
- 🧠 Idea principal: ¿Cómo ordena Python las cadenas?
🧠 Idea principal: ¿Cómo ordena Python las cadenas?
Cuando usas sorted() o .sort() en Python, las cadenas se ordenan según los valores Unicode (ASCII) de los caracteres.
🧠 Idea principal: ¿Cómo ordena Python las cadenas?
Cuando usas sorted() o .sort() en Python, las cadenas se ordenan según los valores Unicode (ASCII) de los caracteres.
🧮 En ASCII:
Las letras mayúsculas ('A', 'B', 'Z') vienen antes que las minúsculas ('a', 'b', 'z').
Por eso, 'Zebra' < 'apple' es verdadero.
💡 Tres formas comunes de ordenar cadenas
1. Orden sensible a mayúsculas/minúsculas (sorted(lista)):
Este método respeta la diferencia entre mayúsculas y minúsculas. Las mayúsculas aparecen primero.
sorted(['Koala', 'antelope', 'Gibbon', 'Alligator']) # Resultado: ['Alligator', 'Gibbon', 'Koala', 'antelope'] Esto ocurre porque 'A' < 'G' < 'K' < 'a' según el valor ASCII.
2. Orden sin distinguir mayúsculas/minúsculas
sorted(lista, key=lambda x: x.lower()) Este método ignora las mayúsculas al comparar. Convierte todo a minúsculas para comparar, pero mantiene el texto original.
sorted(['Koala', 'antelope', 'Gibbon', 'Alligator'], key=lambda x: x.lower()) # Resultado: ['Alligator', 'antelope', 'Gibbon', 'Koala'] 3. Convertir a minúsculas y luego ordenar
sorted([x.lower() for x in lista]) Este método convierte todas las cadenas a minúsculas antes de ordenar, y también devuelve los resultados en minúsculas.
sorted([animal.lower() for animal in ['Koala', 'antelope']]) # Resultado: ['antelope', 'koala'] ✨ Resumen
Objetivo | Ejemplo de código | Resultado esperado |
|---|---|---|
Que las mayúsculas vayan primero |
|
|
Ignorar mayúsculas (mantener caso) |
|
|
Todo en minúsculas y luego ordenar |
|
|
🔧 ¿Cuándo usar .sort() y cuándo usar sorted()?
.sort()
Usa esto cuando quieras modificar la lista original directamente (ordenar en el mismo lugar).
animales.sort() ✅ Más eficiente en memoria
❌ Solo funciona con listas
❌ No conserva el orden original
sorted()
Usa esto cuando quieras crear una nueva lista ordenada, sin afectar la original.
nueva_lista = sorted(animales)✅ Funciona con cualquier iterable (listas, tuplas, strings)
✅ Conserva la lista original
❌ Usa más memoria
📌 Conclusión
Si tu ejercicio requiere que las mayúsculas aparezcan primero, no uses
.lower().Usa
sorted()para obtener una nueva lista sin modificar la original.Usa
.sort()si necesitas ordenar una lista directamente.
Reply