Soy Alfonso Navas (@navasa) y en este cuaderno presentaré mi solución para el ejercicio No. 1 - Lista de palabras.
En este ejercicio, se pretende escribir programa que acepta una lista de palabras separadas por guiones e imprime de vuelta las mismas palabras, sin repetición, nuevamente separadas por guiones y ordenadas alfabéticamente.
Utilizando la función input()
, se le solicita al usuario que ingrese una secuencia de palabras separadas por guiones.
sec_in = input('Por favor, ingrese una secuencia de palabras separadas por guiones: ')
Por favor, ingrese una secuencia de palabras separadas por guiones: naranja-avión-melodía-tupla-avión
Usando el método split()
, obtenemos una lista que contiene las palabras ingresadas.
lista_in = sec_in.split('-')
print(lista_in)
['naranja', 'avión', 'melodía', 'tupla', 'avión']
Convirtiendo una lista ( list
) en un conjunto ( set
) eliminamos las palabras repetidas.
set_in = set(lista_in)
print(set_in)
{'avión', 'melodía', 'tupla', 'naranja'}
Usando la función sorted()
ordenamos alfabéticamente las palabras del conjunto.
lista_out = sorted(set_in)
print(lista_out)
['avión', 'melodía', 'naranja', 'tupla']
#Nótese que la función sorted() nos arroja una lista y no un conjuto
print(type(lista_out))
<class 'list'>
Por último, escribimos e imprimimos la secuencia de salida a partir de lista_out
.
#Escribimos la primera palabra en nuestra secuencia de salida
sec_out = lista_out[0]
#Creamos esta variable para adicionar las palabras que hacen falta
n = len(lista_out) - 1
#Usando un ciclo sencillo adicionamos las demás palabras separadas por guiones
for i in range(n):
sec_out += '-' + lista_out[i+1]
#Imprimimos la secuencia de palabras sin repetición ordenadas alfabéticamente
print(sec_out)
avión-melodía-naranja-tupla