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": {