From b2c9dd2e019c68bda5e280b7304a685171c03d13 Mon Sep 17 00:00:00 2001 From: soy juan Date: Mon, 12 Jan 2026 17:38:39 +0100 Subject: [PATCH] Update lab-python-data-structures.ipynb --- lab-python-data-structures.ipynb | 245 ++++++++++++++++++++++++++++--- 1 file changed, 225 insertions(+), 20 deletions(-) diff --git a/lab-python-data-structures.ipynb b/lab-python-data-structures.ipynb index 8ba652c..bf75624 100644 --- a/lab-python-data-structures.ipynb +++ b/lab-python-data-structures.ipynb @@ -57,11 +57,45 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La suma total de las notas es: 39\n", + "Notas seleccionadas ordenadas: [7, 8, 9]\n", + "Cantidad de notas en la lista: 3\n", + "Cantidad de veces que aparece la nota 5: 0\n" + ] + } + ], "source": [ - "# Your code here" + "# Your code here\n", + "# Lista vacía para guardar las notas\n", + "notas = []\n", + "\n", + "# Pedimos las notas de los 5 estudiantes\n", + "for i in range(5):\n", + " nota = int(input(f\"Ingrese la nota del estudiante {i + 1}: \"))\n", + " notas.append(nota)\n", + "\n", + "# Calculamos la suma total de las notas\n", + "suma_total = sum(notas)\n", + "print(\"La suma total de las notas es:\", suma_total)\n", + "\n", + "# Seleccionamos las notas del 1°, 3° y 5° estudiante\n", + "# (índices 0, 2 y 4)\n", + "notas_seleccionadas = notas[0:5:2]\n", + "\n", + "# Ordenamos la nueva lista\n", + "notas_seleccionadas.sort()\n", + "\n", + "# Mostramos resultados\n", + "print(\"Notas seleccionadas ordenadas:\", notas_seleccionadas)\n", + "print(\"Cantidad de notas en la lista:\", len(notas_seleccionadas))\n", + "print(\"Cantidad de veces que aparece la nota 5:\", notas_seleccionadas.count(5))\n" ] }, { @@ -95,11 +129,57 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Tupla original: ('manzana', 'banana', 'naranja', 'pera', 'uva')\n", + "Primera fruta: manzana\n", + "Última fruta: uva\n", + "Tupla actualizada: ('manzana', 'mango', 'naranja', 'pera', 'uva')\n", + "Tupla concatenada: ('manzana', 'mango', 'naranja', 'pera', 'uva', 'kiwi', 'ananá')\n", + "Primera tupla: ('manzana', 'mango', 'naranja')\n", + "Segunda tupla: ('uva', 'kiwi', 'ananá')\n", + "Tupla final: ('manzana', 'mango', 'naranja', 'pera', 'uva', 'manzana', 'mango', 'naranja', 'uva', 'kiwi', 'ananá')\n", + "Longitud de la tupla final: 11\n" + ] + } + ], "source": [ - "# Your code here" + "# Your code here\n", + "# 1. Creamos una tupla con 5 frutas\n", + "frutas = (\"manzana\", \"banana\", \"naranja\", \"pera\", \"uva\")\n", + "print(\"Tupla original:\", frutas)\n", + "\n", + "# 2. Mostramos el primer y último elemento\n", + "print(\"Primera fruta:\", frutas[0])\n", + "print(\"Última fruta:\", frutas[-1])\n", + "\n", + "# 3. Reemplazamos la segunda fruta (convertimos a lista)\n", + "frutas_lista = list(frutas)\n", + "frutas_lista[1] = \"mango\"\n", + "frutas = tuple(frutas_lista)\n", + "print(\"Tupla actualizada:\", frutas)\n", + "\n", + "# 4. Concatenamos una nueva tupla con 2 frutas más\n", + "nuevas_frutas = (\"kiwi\", \"ananá\")\n", + "frutas_concatenadas = frutas + nuevas_frutas\n", + "print(\"Tupla concatenada:\", frutas_concatenadas)\n", + "\n", + "# 5. Dividimos la tupla en dos tuplas de 3 elementos\n", + "tupla1 = frutas_concatenadas[:3]\n", + "tupla2 = frutas_concatenadas[-3:]\n", + "\n", + "print(\"Primera tupla:\", tupla1)\n", + "print(\"Segunda tupla:\", tupla2)\n", + "\n", + "# 6. Combinamos todo en una nueva tupla\n", + "tupla_final = frutas + tupla1 + tupla2\n", + "print(\"Tupla final:\", tupla_final)\n", + "print(\"Longitud de la tupla final:\", len(tupla_final))\n" ] }, { @@ -136,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -163,11 +243,60 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Cantidad de palabras únicas en el primer poema: 41\n", + "Cantidad de palabras únicas en el segundo poema: 42\n", + "\n", + "Palabras solo en el primer poema:\n", + "{'favor', 'great', 'fire', 'would', 'twice', 'in', 'world', 'hate', 'hold', 'will', 'for', 'tasted', 'ice', 'destruction', 'the', 'perish', 'desire', 'also', 'suffice'}\n", + "\n", + "Palabras solo en el segundo poema:\n", + "{'as', 'though', 'made', 'away', 'dream', 'seen', 'its', 'are', 'side', 'love', 'today', 'fades', 'quest', 'we', 'life', 'test', 'see', 'deem', 'still', 'a'}\n", + "\n", + "Palabras en ambos poemas (ordenadas):\n", + "['and', 'but', 'end', 'enough', 'from', 'had', 'i', 'if', 'is', 'it', 'ive', 'know', 'of', 'say', 'some', 'that', 'think', 'those', 'to', 'what', 'who', 'with']\n" + ] + } + ], "source": [ - "# Your code here" + "# Your code here\n", + "import string\n", + "\n", + "# Función para limpiar texto y convertirlo en un set de palabras\n", + "def palabras_unicas(texto):\n", + " texto = texto.lower()\n", + " texto = texto.translate(str.maketrans(\"\", \"\", string.punctuation + \"’\"))\n", + " palabras = texto.split()\n", + " return set(palabras)\n", + "\n", + "# Creamos los sets de cada poema\n", + "set_poem = palabras_unicas(poem)\n", + "set_new_poem = palabras_unicas(new_poem)\n", + "\n", + "# 1. Cantidad de palabras únicas\n", + "print(\"Cantidad de palabras únicas en el primer poema:\", len(set_poem))\n", + "print(\"Cantidad de palabras únicas en el segundo poema:\", len(set_new_poem))\n", + "\n", + "# 2. Palabras solo en el primer poema\n", + "solo_poem = set_poem - set_new_poem\n", + "print(\"\\nPalabras solo en el primer poema:\")\n", + "print(solo_poem)\n", + "\n", + "# 3. Palabras solo en el segundo poema\n", + "solo_new_poem = set_new_poem - set_poem\n", + "print(\"\\nPalabras solo en el segundo poema:\")\n", + "print(solo_new_poem)\n", + "\n", + "# 4. Palabras en ambos poemas (ordenadas)\n", + "comunes = sorted(set_poem & set_new_poem)\n", + "print(\"\\nPalabras en ambos poemas (ordenadas):\")\n", + "print(comunes)\n" ] }, { @@ -193,7 +322,7 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -206,7 +335,55 @@ "metadata": {}, "outputs": [], "source": [ - "# Your code here" + "# Your code here\n", + "#diccionario inicial de estudiantes y sus notas\n", + "students = {\n", + " \"Alice\": {\n", + " \"Math\": 85,\n", + " \"History\": 90,\n", + " \"Philosophy\": 88\n", + " },\n", + " \"Bob\": {\n", + " \"Math\": 78,\n", + " \"History\": 82,\n", + " \"Philosophy\": 70\n", + " },\n", + " \"Charlie\": {\n", + " \"Math\": 92,\n", + " \"History\": 88,\n", + " \"Philosophy\": 91\n", + " }\n", + "}\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "#actualizamos nota de Bob en Filosofía\n", + "students[\"Bob\"][\"Philosophy\"] = 100\n" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Diccionario actualizado:\n", + "{'Alice': {'Math': 85, 'History': 90, 'Philosophy': 88}, 'Bob': {'Math': 78, 'History': 82, 'Philosophy': 100}, 'Charlie': {'Math': 92, 'History': 88, 'Philosophy': 91}}\n" + ] + } + ], + "source": [ + "#diccionario actualizado\n", + "print(\"Diccionario actualizado:\")\n", + "print(students)\n" ] }, { @@ -239,14 +416,26 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "{'Physics': 75, 'Math': 85, 'Chemistry': 60, 'Philosophy': 90}\n" + ] + } + ], "source": [ "keys = ['Physics', 'Math', 'Chemistry', 'Philosophy']\n", "values = [75, 85, 60,90]\n", "\n", - "# Your code here" + "# Your code here\n", + "# Convertimos las listas en diccionario usando zip\n", + "notas = dict(zip(keys, values))\n", + "\n", + "print(notas)\n" ] }, { @@ -275,17 +464,33 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 13, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "La materia con la nota mas baja es: Chemistry\n", + "La nota mas baja es: 60\n" + ] + } + ], "source": [ - "# Your code here" + "# Your code here\n", + "notas = {'Physics': 75, 'Math': 85, 'Chemistry': 60, 'Philosophy': 90}\n", + "\n", + "# Obtenemos la materia con la nota mínima\n", + "nota_mas_baja = min(notas, key=notas.get)\n", + "\n", + "print(\"La materia con la nota mas baja es:\", nota_mas_baja)\n", + "print(\"La nota mas baja es:\", notas[nota_mas_baja])" ] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -299,7 +504,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.14.0" } }, "nbformat": 4,