- Bytes y Café
- 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