Escriba un programa en python que acepte una lista de palabras separadas por guiones, e imprima de vuelta las mismas palabras, sin repetición y nuevamente separadas por guiones,después de ordenarlas alfabéticamente.
Ejemplo de entrada: naranja-avión-melodía-tupla-avión
Salida esperada: avión-melodía-naranja-tupla
import unidecode
def lista_de_palabras(words_list):
'''
Definir una función que reciba una lista de palabras separada por guiones y retorne las palabras
únicas ordenadas alfabéticamente.
'''
# -- revisa el tipo de variable
# -- si es string separa de acuerdo al guion si es una entrada tipo lista, toma el elemento y separa el string
if type(words_list) == str:
words = words_list.split('-')
elif type(words_list) == list:
words = words_list[0].split('-')
# -- convierte a variable tipo conjunto para tener valores repetidos.
# -- acá estariamos haciendo caso omiso de palabras como avión y avion,
# -- estas se tomarian como palabras diferentes
unique_words = set(words)
# -- crear una lista auxiliar sin acento y en minuscula
unique_words_aux = [unidecode.unidecode(i.lower()) for i in unique_words]
# -- ordenada la lista sin acentos y en minuscula y la lista original se ordena siguiendo la otra
sorted_words_aux = sorted(zip(unique_words_aux,unique_words), key=lambda x: x[0])
# -- ordena la variable anterior, de tal manera que quede cada lista separada
sorted_words = list(zip(*sorted_words_aux))[1]
# -- une las palabras para que quede un string separado por guiones
new_words_list = '-'.join(sorted_words)
return new_words_list
print(lista_de_palabras('naranja-avión-melodía-tupla-avión-tupla'))
print(lista_de_palabras(['naranja-avión-melodía-tupla-avión-tupla']))
print(lista_de_palabras(['Z-X-A-O-r-t']))
print(lista_de_palabras(['AMOR-ZApato-hELicoptero-regular-ZIPOTLE']))
print(lista_de_palabras(['avión-aviones-papá-papa-país']))
avión-melodía-naranja-tupla avión-melodía-naranja-tupla A-O-r-t-X-Z AMOR-hELicoptero-regular-ZApato-ZIPOTLE avión-aviones-país-papa-papá