diff --git a/ejercicio1.ipynb b/ejercicio1.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..fa5f7dfd39a3c67c8e0356b84e4aa1c4a49078e7 --- /dev/null +++ b/ejercicio1.ipynb @@ -0,0 +1,262 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# **Tarea 2. Ejercicio 1.**\n", + "## Daniel Brito.\n", + "## @britod" + ] + }, + { + "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. Ejemplo de entrada: naranja-avión-melodÃa-tupla-avión.\n", + "\n", + "Salida esperada: avión-melodÃa-naranja-tupla" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Solución" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Nuestro programa va ser definido como una función cuya variable de entrada sea una lista.\n", + "\n", + "Necesitamos crear una lista " + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "# Listas que contienen elementos repetidos\n", + "list0 = ['taza', 'taladro', 'besitos', 'café' , 'taza']\n", + "list1 = ['taza','-', 'taladro','-', 'besitos','-', 'café' ,'-', 'taza']\n", + "list2 = ['baño','-','cepillar','-','ducha','-','baño','-','café','-','sopa','-','ducha','-', 'ducha']\n", + "list3 = ['melodia','-','revolver','-','computadora','-', 'estrés','-','agua','-','revolver','-','computadora','-','estrés','-','agua','-','cactus','-','empanada','-','té']\n", + "list4 = ['melodia','-','revolver','-','computadora','-', 'estrés','-','agua','-','revolver','-','computadora','-','estrés','-','agua','-','cactus','-','empanada','-','té','-','estrés','-','té','-','sol','-','luna']" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "# A partir de ahora, vamos a programar la funcion pedida \n", + "def program1(in_list):\n", + " # El programa comienza creando una lista vacia\n", + " v = True # Esta variable la creamos para que el programa verifique si puede dar o no un resultado\n", + " cleaning_list=[] # Esta es la lista vacia\n", + " print(in_list)\n", + " #Vamos a corroborar que la variable de entrada es una variable tipo lista\n", + " if type(in_list)==list:\n", + " print('Es una lista, podemos continuar')\n", + " else:\n", + " print('Por favor ingresa una lista')\n", + " v = False\n", + " \n", + " # En esta parte, vamos a eliminar los guiones para poder eliminar las palabras repetidas\n", + " for palabra in in_list:\n", + " if palabra !='-':\n", + " cleaning_list.append(palabra)\n", + " \n", + " print(cleaning_list)\n", + " \n", + " # Ahora vamos a eliminar los elementos que están repetidos en la lista 'cleaning_list'. Esto lo vamos a hacer transformando\n", + " ## la lista creada (cleaning_list) en un conjunto\n", + " unrepeated_set = set(cleaning_list)\n", + " print(unrepeated_set)\n", + " \n", + " # Una vez eliminados los elementos repetidos, el conjunto se transforma nuevamente en una lista. Seguidamente se ordenan\n", + " ## los elementos en orden alfabético usando sort()\n", + " unrepeated_list = list(unrepeated_set)\n", + " unrepeated_list.sort()\n", + " print(unrepeated_list)\n", + " \n", + " # Lo que falta es agregar entre cada palabra de la lista, los guiones. Vamos a hacerlo usando un for, pero tenemos que\n", + " ## tomar en cuenta lo siguiente: \n", + " ### Al agregar los guiones, la cantidad de elementos de la lista cambia y también lo hacen las posiciones en las\n", + " #### que deberÃan estar los guiones. Por suerte, estas posiciones corresponden los números impares menores al número de \n", + " ##### elementos de la lista\n", + " for i in range(1,len(unrepeated_list),1):\n", + " unrepeated_list.insert(2*i-1,'-')\n", + " \n", + " \n", + " # Ahora verificamos si se puede imprimir o no un resultado\n", + " if v == True:\n", + " print('Aquà tiene su lista ordenada y separada.')\n", + " return unrepeated_list\n", + " else:\n", + " print('Error')" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['baño', '-', 'cepillar', '-', 'ducha', '-', 'baño', '-', 'café', '-', 'sopa', '-', 'ducha', '-', 'ducha']\n", + "Es una lista, podemos continuar\n", + "['baño', 'cepillar', 'ducha', 'baño', 'café', 'sopa', 'ducha', 'ducha']\n", + "{'cepillar', 'café', 'sopa', 'baño', 'ducha'}\n", + "['baño', 'café', 'cepillar', 'ducha', 'sopa']\n", + "Aquà tiene su lista ordenada y separada.\n" + ] + }, + { + "data": { + "text/plain": [ + "['baño', '-', 'café', '-', 'cepillar', '-', 'ducha', '-', 'sopa']" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "program1(list2)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['melodia', '-', 'revolver', '-', 'computadora', '-', 'estrés', '-', 'agua', '-', 'revolver', '-', 'computadora', '-', 'estrés', '-', 'agua', '-', 'cactus', '-', 'empanada', '-', 'té']\n", + "Es una lista, podemos continuar\n", + "['melodia', 'revolver', 'computadora', 'estrés', 'agua', 'revolver', 'computadora', 'estrés', 'agua', 'cactus', 'empanada', 'té']\n", + "{'computadora', 'té', 'estrés', 'cactus', 'empanada', 'revolver', 'agua', 'melodia'}\n", + "['agua', 'cactus', 'computadora', 'empanada', 'estrés', 'melodia', 'revolver', 'té']\n", + "Aquà tiene su lista ordenada y separada.\n" + ] + }, + { + "data": { + "text/plain": [ + "['agua',\n", + " '-',\n", + " 'cactus',\n", + " '-',\n", + " 'computadora',\n", + " '-',\n", + " 'empanada',\n", + " '-',\n", + " 'estrés',\n", + " '-',\n", + " 'melodia',\n", + " '-',\n", + " 'revolver',\n", + " '-',\n", + " 'té']" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "program1(list3)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "['melodia', '-', 'revolver', '-', 'computadora', '-', 'estrés', '-', 'agua', '-', 'revolver', '-', 'computadora', '-', 'estrés', '-', 'agua', '-', 'cactus', '-', 'empanada', '-', 'té', '-', 'estrés', '-', 'té', '-', 'sol', '-', 'luna']\n", + "Es una lista, podemos continuar\n", + "['melodia', 'revolver', 'computadora', 'estrés', 'agua', 'revolver', 'computadora', 'estrés', 'agua', 'cactus', 'empanada', 'té', 'estrés', 'té', 'sol', 'luna']\n", + "{'luna', 'sol', 'computadora', 'té', 'estrés', 'cactus', 'empanada', 'revolver', 'agua', 'melodia'}\n", + "['agua', 'cactus', 'computadora', 'empanada', 'estrés', 'luna', 'melodia', 'revolver', 'sol', 'té']\n", + "Aquà tiene su lista ordenada y separada.\n" + ] + }, + { + "data": { + "text/plain": [ + "['agua',\n", + " '-',\n", + " 'cactus',\n", + " '-',\n", + " 'computadora',\n", + " '-',\n", + " 'empanada',\n", + " '-',\n", + " 'estrés',\n", + " '-',\n", + " 'luna',\n", + " '-',\n", + " 'melodia',\n", + " '-',\n", + " 'revolver',\n", + " '-',\n", + " 'sol',\n", + " '-',\n", + " 'té']" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "program1(list4)" + ] + }, + { + "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.4" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}