diff --git a/ejercicio1.ipynb b/ejercicio1.ipynb index 012109a4ef92355047247b65ad9fe413c79c8474..6ce4da0f2d580a6902e748cc646243267922f138 100644 --- a/ejercicio1.ipynb +++ b/ejercicio1.ipynb @@ -40,14 +40,14 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdin", "output_type": "stream", "text": [ - "Ingrese una lista de palabras separadas por guiones sin dejar epacios; se retornaran las palabras ordenadas alfabeticamente y sin repeticiones hola-como-estas\n" + "Ingrese una lista de palabras separadas por guiones sin dejar epacios; se retornaran las palabras ordenadas alfabeticamente y sin repeticiones naranja-mango-perro-pera-casa-avion-perro\n" ] } ], @@ -63,7 +63,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -77,14 +77,30 @@ "source": [ "## Separacion de las palabras\n", "\n", - "En la celda siguiente se ejecuta el proceso que permite extraer cada una de las palabras que el usuario ingresó, las cuales estan guardadas como en **UN** solo string, que llamamos `palabras`" + "En la celda siguiente se ejecuta el proceso que permite extraer cada una de las palabras que el usuario ingresó, las cuales estan guardadas en **UN** solo string, que llamamos `palabras`.\n", + "\n", + "+ Creamos una variable nueva llamada contador. Antes del ciclo `for`, esta variable es un string vacio.\n", + "\n", + "+ Hacemos un ciclo ``for`` que recorre la cadena de caracteres ``palabra``, y vamos guardando cada uno de estos caracteres en la variable ``contador``.\n", + "\n", + "+ Cuando uno de los caracteres en ``palabra`` coincide con un guion (``-``), quiere decir que la variable ``contador`` \"tiene\" la primera palabra.\n", + "\n", + "+ Apendamos esta palabra a la lista ``lista_de_palabras`` y reiniciamos la variable ``contador`` a un caracter vacio; de manera que en la siguiente iteración del ``for``, esta variable empiece a guardar la segunda palabra. " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Lista que contiene las palabras ingresadas sin guiones: ['naranja', 'mango', 'perro', 'pera', 'casa', 'avion', 'perro']\n" + ] + } + ], "source": [ "#--------------------------------------------------------------\n", "# Aqui ensaye como quitarle el ultimo caracter a un string\n", @@ -101,27 +117,96 @@ " #Sin el [:-1] se añade la palabra con el guion delante\n", " contador=\"\"\n", "\n", - "\n", "# lista_de_palabras es una lista que contiene las palabras del string original.\n", - "print(\"Lista que contiene las palabras ingresadas sin guiones: \",lista_de_palabras)" + "# print(\"Lista que contiene las palabras ingresadas sin guiones: \",lista_de_palabras)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Eliminacion de las palabras repetidas\n", + "\n", + "+ Para eliminar las palabras repetidas, convertimos la lista ``lista_de_palabras`` a un _conjunto_ que llamamos ``set_palabras_sin_repetir``; ya que este tipo de estructuras **NO** permiten la repeticion de elementos. " ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "set de palabras ingresadas sin repetir {'naranja', 'perro', 'mango', 'avion', 'pera', 'casa'}\n" + ] + } + ], "source": [ "set_palabras_sin_repetir=set(lista_de_palabras)\n", - "print(\"set de palabras ingresadas sin repetir \",set_palabras_sin_repetir)\n", + "print(\"set de palabras ingresadas sin repetir \",set_palabras_sin_repetir)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Ordanacion alafabetica\n", + "\n", + "+ La estructura de _conjunto_ no nos permite hacer un ordenamiento alfabetico; para ello debemos volver a las listas, las cuales tienen el metodo ``.sort()``. \n", "\n", + "+ Creamos entonces una lista llamada ``lista_palabras_sin_repetir``, la cual contiene cada una de las palabras del string original, esta vez sin repeticiones. Luego aplicamos el metodo ``.sort()`` a esta lista." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ "list_palabras_sin_repetir=list(set_palabras_sin_repetir)\n", - "print(\"lista de palabras ingresadas sin repetir \",list_palabras_sin_repetir)\n", + "# print(\"lista de palabras ingresadas sin repetir \",list_palabras_sin_repetir)\n", "\n", "# Ordenamos las palabras alfabeticamente\n", "list_palabras_sin_repetir.sort()\n", - "print(\"lista de palabras ingresadas sin repetir, ordenadas alfabeticamente \",list_palabras_sin_repetir)\n", - "# Hacemos el string final uniendo los elementos de list_palabras_sin_repetir\n", + "# print(\"lista de palabras ingresadas sin repetir, ordenadas alfabeticamente \",list_palabras_sin_repetir)\n", + "# Hacemos el string final uniendo los elementos de list_palabras_sin_repetir" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Retornamos las palabras con el formato que se pide en ejercicio\n", + "\n", + "+ Para retornar las palabras como se pide en el ejercico, las concatenamos usando un ciclo ``for`` que recorre los elementos de la lista ``list_palabras_sin_repetir``.\n", + "\n", + "+ Creamos una variable tipo _strin_ llamada ``semi_final_string``, la cual empieza siendo un caracter vacio ``\"\"``.\n", + "\n", + "+ En cada iteración del ciclo ``for`` concatenamos las palabras de la lista ``list_palabras_sin_repetir`` junto con un guion.\n", + "\n", + "+ Finalmente, retornamos una variable tipo _string_ que llamamos ``final_string``, la cual es contiene los elementos de la variable ``semi_final_string`` desde la posición ``[1]`` debido a que el proceso anteriormente descrito coloca un guion ``-`` antes de guardar la primera palabra." + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + " \n", + "A continuación se muestra un string de las palabras ingresadas,\n", + "sin repeticion, y ordenadas alfabeticamente, separadas por guiones\n", + "avion-casa-mango-naranja-pera-perro\n" + ] + } + ], + "source": [ "semi_final_string=\"\"\n", "for a in list_palabras_sin_repetir:\n", " semi_final_string=semi_final_string+\"-\"+a\n", @@ -144,13 +229,6 @@ "source": [ "Bibliografia: https://www.geeksforgeeks.org/python-convert-set-into-a-list/" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": {