• 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

sorted(animales)

['Alligator', 'Capybara', ..., 'manatee']

Ignorar mayúsculas (mantener caso)

sorted(animales, key=lambda x: x.lower())

['Alligator', 'antelope', ...]

Todo en minúsculas y luego ordenar

sorted([x.lower() for x in animales])

['alligator', 'antelope', ...]

🔧 ¿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

or to participate.