Solución al Ejercicio: Ordenar palabras por longitud
📋 Copiar código
def ordenar_palabras_por_longitud(texto):
"""
Ordena las palabras de una cadena por su longitud, manteniendo el orden
relativo de palabras con la misma longitud.
Args:
texto: La cadena de texto de entrada.
Returns:
Una nueva cadena con las palabras ordenadas por longitud.
"""
palabras = texto.split()
# Usamos sorted con una función clave (len) para ordenar por longitud
# La estabilidad del sort en Python 3 garantiza que el orden relativo se mantenga
palabras_ordenadas = sorted(palabras, key=len)
return " ".join(palabras_ordenadas)
# Ejemplos de uso
texto1 = "Esta es una frase de ejemplo corta"
resultado1 = ordenar_palabras_por_longitud(texto1)
print(f"'{texto1}' ordenado por longitud: '{resultado1}'")
texto2 = "Python es un lenguaje de programación poderoso y versátil"
resultado2 = ordenar_palabras_por_longitud(texto2)
print(f"'{texto2}' ordenado por longitud: '{resultado2}'")
texto3 = "a bb ccc d eee ff ggg hhhh"
resultado3 = ordenar_palabras_por_longitud(texto3)
print(f"'{texto3}' ordenado por longitud: '{resultado3}'")
texto4 = "palabra otra palabra"
resultado4 = ordenar_palabras_por_longitud(texto4)
print(f"'{texto4}' ordenado por longitud: '{resultado4}'")
texto5 = ""
resultado5 = ordenar_palabras_por_longitud(texto5)
print(f"'{texto5}' ordenado por longitud: '{resultado5}'")
Explicación del Código:
Función ordenar_palabras_por_longitud(texto)
:
- Divide la cadena de
texto
en
una lista de palabras
utilizando el método split()
.
- Utiliza la función
sorted()
para ordenar la lista de palabras
.
- El argumento
key=len
especifica que la ordenación debe basarse en la longitud de cada palabra (la
función len
se aplica a cada elemento de la lista durante la
ordenación).
- Estabilidad del Sort: En
Python 3, el algoritmo de ordenación
sorted()
es estable. Esto
significa que si dos palabras tienen la misma longitud, su orden relativo en
la lista original (palabras
) se conservará en la lista ordenada
(palabras_ordenadas
).
- Finalmente, las
palabras_ordenadas
se unen de nuevo en una cadena utilizando el método join(" ")
,
con un espacio como separador entre las palabras.
Ejemplos de Uso:
Los ejemplos demuestran cómo la función ordena
las palabras de diferentes cadenas de texto según su longitud, manteniendo el
orden original para palabras de la misma longitud. También se incluye un ejemplo
con una cadena vacía.