diff --git a/Ejercicio1.ipynb b/Ejercicio1.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..e2638e894657c1265115dfafa0d2b00f9385626d
--- /dev/null
+++ b/Ejercicio1.ipynb
@@ -0,0 +1,147 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "# Ejercicio No. 1 - Lista de palabras\n",
+ "\n",
+ "**Enunciado:** Escriba un programa en python que acepte una lista de palabras separadas por guiones, e\n",
+ "imprima de vuelta las mismas palabras, sin repetición y nuevamente separadas por guiones,\n",
+ "después de ordenarlas alfabéticamente.\n",
+ "\n",
+ "**Solución:** Hola, mi nombre es *Sebastian Ordoñez* (ordonezs), para solucionar este ejercicio opté por implementar una única función, `order`, la cual realiza en su totalidad lo requerido. En las lÃneas de código se encuentra documentación un poco más detallada, asà como comentarios de qué hacen las lÃneas más importantes "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "def order(lista:str)->str:\n",
+ " \"\"\"\n",
+ " Esta función recibe una cadena (str) que contiene palabras separadas por guiones y retorna también una cadena\n",
+ " con las palabras nuevamente separadas por guiones, ordenadas alfabéticamente y sin repetición.\n",
+ " \n",
+ " Input\n",
+ " ------\n",
+ " lista (str): cadena que contiene las palabras separadas por guiones.\n",
+ " \n",
+ " Output\n",
+ " ------\n",
+ " final (str): cadena con las palabras separadas por guiones, ordenadas alfabéticamente y sin repetición.\n",
+ " \"\"\"\n",
+ " \n",
+ " lista += \"-\" # A la cadena inicial se le añade un guión al final para evitar problemas con la última palabra.\n",
+ " words = [] # Lista que contendrá todas las palabras que se encuentran en la cadena inicial () lista\n",
+ " word = \"\"\n",
+ " for x in lista:\n",
+ " if x!=\"-\":\n",
+ " word += x\n",
+ " else:\n",
+ " words.append(word)\n",
+ " word = \"\"\n",
+ " words = list(dict.fromkeys(words)) # Jugando con los tipos de objeto se eliminan las palabras repetidas\n",
+ " words = sorted(words) # Función para ordenar las palabras alfabéticamente\n",
+ " \n",
+ " final = \"\" # Cadena final con las palabras en la lista \"words\"\n",
+ " for y in words:\n",
+ " if words.index(y)!=len(words)-1:\n",
+ " final += y+\"-\"\n",
+ " else:\n",
+ " final += y\n",
+ " \n",
+ " return final"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Ahora que hemos terminado de construir la función `order`, la cual realiza lo requerido por el problema, entonces pasamos a probarla. Para esto, podemos usar el ejemplo sugerido en el enunciado mismo, tal que:"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'avión-melodÃa-naranja-tupla'"
+ ]
+ },
+ "execution_count": 2,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "order(\"naranja-avión-melodÃa-tupla-avión\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'naranja'"
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "order(\"naranja-naranja-naranja\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "'a-b-c-d-e-f-g-h'"
+ ]
+ },
+ "execution_count": 4,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "order(\"a-b-c-d-f-g-e-h\")"
+ ]
+ }
+ ],
+ "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
+}