{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Lista de palabras\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "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.\n",
    "\n",
    "Ejemplo de entrada: naranja-avión-melodía-tupla-avión\n",
    "\n",
    "Salida esperada: avión-melodía-naranja-tupla"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Escriba una lista de palabras separadas por guiones.\n",
      "Por ejemplo: naranja-avión-melodía-tupla-avión\n"
     ]
    }
   ],
   "source": [
    "print('Escriba una lista de palabras separadas por guiones.')\n",
    "print('Por ejemplo: naranja-avión-melodía-tupla-avión')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "El comando `input()` lee una línea de entrada y la convierte en un string, en este es caso es para almancenarlo en la variable palabras_entrada"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "naranja-avión-melodía-tupla-avión-naranja-avión-melodía-tupla-avión-naranja-avión-melodía-tupla-avión\n"
     ]
    }
   ],
   "source": [
    "palabras_entrada = input()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "El programa hace uso de una función ej1 que:\n",
    "1. Genera una lista (de string) de palabras a partir del string inicial. Dicha lista considera a una palabra como cualquier cosa que sea separada por un guión.\n",
    "2. Para evitar las palabras convierte en un set a la lista generada anteriormente, luego se genera otra lista a partir del set anterior.\n",
    "3. Con el comando sorted() se ordena por orden alfabético la lista anterior\n",
    "4. Finalmente la función crea un string a partir de la lista anterior en donde añade un guión entre las palabras."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def ej1(x):\n",
    "    \"\"\"\n",
    "    Para una serie de palabras separadas por guión\n",
    "    retorna las palabras ordenadas alfabeticamente\n",
    "    \"\"\"\n",
    "    x = x.split('-') #una lista de las palabras sin guion\n",
    "    x = list(set(x)) #lo vuelve conjunto (para eliminar repeticiones) y vuelve a ser lista  \n",
    "    x = sorted(x) #ordena alfabeticamente\n",
    "    x = '-'.join(x) # se vuelve string y annade guiones entre palabra\n",
    "    return x #retorna el string deseado"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Aplicando la función ej1 a las palabras introducidas:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "palabras_salida = ej1(palabras_entrada)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Comparando el valor de entrada y el de salida:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Palabras introducidas: naranja-avión-melodía-tupla-avión-naranja-avión-melodía-tupla-avión-naranja-avión-melodía-tupla-avión\n",
      "Salida de palabras: avión-melodía-naranja-tupla\n"
     ]
    }
   ],
   "source": [
    "print('Palabras introducidas:',palabras_entrada)\n",
    "print ('Salida de palabras:',palabras_salida)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}