Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Solution Lab Data Estructures Extra #37

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Solution Lab Data Estructures Extra
adrianlardies committed Sep 7, 2024
commit 36294db074590e25685f3ac65eec8299ac47ca18
212 changes: 205 additions & 7 deletions lab-python-data-structures.ipynb
Original file line number Diff line number Diff line change
@@ -61,7 +61,58 @@
"metadata": {},
"outputs": [],
"source": [
"# Your code here"
"# Creamos una lista vacía para almacenar las notas de los estudiantes\n",
"notas = []\n",
"\n",
"# Usamos un bucle para pedir las notas de los 5 estudiantes\n",
"for i in range(5):\n",
" nota = int(input(f\"Ingresa la nota del estudiante {i+1}: \"))\n",
" notas.append(nota)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Calculamos la suma total de las notas\n",
"suma_total = sum(notas)\n",
"print(f\"La suma total de las notas es: {suma_total}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Creamos una nueva lista con las notas del 1er, 3er y 5to estudiante\n",
"notas_seleccionadas = notas[0:5:2]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Ordenamos la lista en orden ascendente\n",
"notas_seleccionadas.sort()\n",
"print(f\"Notas seleccionadas ordenadas: {notas_seleccionadas}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Mostramos la longitud de la lista y cuántas veces aparece el número 5\n",
"longitud = len(notas_seleccionadas)\n",
"ocurrencias_de_cinco = notas_seleccionadas.count(5)\n",
"print(f\"Longitud de la nueva lista: {longitud}\")\n",
"print(f\"El número 5 aparece {ocurrencias_de_cinco} veces.\")"
]
},
{
@@ -99,7 +150,73 @@
"metadata": {},
"outputs": [],
"source": [
"# Your code here"
"# Inicializamos una tupla con 5 frutas\n",
"frutas = (\"manzana\", \"naranja\", \"plátano\", \"pera\", \"uva\")\n",
"print(f\"Tupla inicial de frutas: {frutas}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Mostramos el primer y último elemento de la tupla\n",
"print(f\"Primera fruta: {frutas[0]}\")\n",
"print(f\"Última fruta: {frutas[-1]}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Convertimos la tupla a una lista para poder modificarla\n",
"frutas_lista = list(frutas)\n",
"# Reemplazamos el segundo elemento (índice 1)\n",
"frutas_lista[1] = \"kiwi\"\n",
"# Convertimos de nuevo la lista en tupla\n",
"frutas_actualizadas = tuple(frutas_lista)\n",
"print(f\"Tupla de frutas actualizada: {frutas_actualizadas}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Creamos una nueva tupla con frutas adicionales\n",
"nuevas_frutas = (\"mango\", \"piña\")\n",
"# Concatenamos las dos tuplas\n",
"frutas_expandida = frutas_actualizadas + nuevas_frutas\n",
"print(f\"Tupla expandida de frutas: {frutas_expandida}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Dividimos la tupla resultante en dos tuplas de 3 elementos\n",
"primera_parte = frutas_expandida[:3]\n",
"segunda_parte = frutas_expandida[-3:]\n",
"print(f\"Primera parte de la tupla: {primera_parte}\")\n",
"print(f\"Segunda parte de la tupla: {segunda_parte}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Combinamos las dos tuplas con la tupla original\n",
"tupla_combinada = primera_parte + segunda_parte + frutas\n",
"print(f\"Tupla combinada: {tupla_combinada}\")\n",
"print(f\"Longitud de la tupla combinada: {len(tupla_combinada)}\")"
]
},
{
@@ -167,7 +284,69 @@
"metadata": {},
"outputs": [],
"source": [
"# Your code here"
"import string\n",
"\n",
"# Función para limpiar el texto\n",
"def limpiar_texto(texto):\n",
" # Convertir a minúsculas y eliminar puntuación\n",
" texto_limpio = texto.lower().translate(str.maketrans(\"\", \"\", string.punctuation))\n",
" # Dividir en palabras y convertirlo a set para obtener solo palabras únicas\n",
" return set(texto_limpio.split())"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Crear conjuntos de palabras únicas\n",
"set_poema1 = limpiar_texto(poem)\n",
"set_poema2 = limpiar_texto(new_poem)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Imprimir el número de palabras únicas en cada poema\n",
"print(f\"Palabras únicas en el primer poema: {len(set_poema1)}\")\n",
"print(f\"Palabras únicas en el segundo poema: {len(set_poema2)}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Palabras únicas en el primer poema pero no en el segundo\n",
"solo_poema1 = set_poema1 - set_poema2\n",
"print(f\"Palabras únicas en el primer poema que no están en el segundo: {solo_poema1}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Palabras únicas en el segundo poema pero no en el primero\n",
"solo_poema2 = set_poema2 - set_poema1\n",
"print(f\"Palabras únicas en el segundo poema que no están en el primero: {solo_poema2}\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Palabras comunes entre ambos poemas\n",
"comunes = set_poema1 & set_poema2\n",
"print(f\"Palabras comunes en ambos poemas (ordenadas alfabéticamente): {sorted(comunes)}\")"
]
},
{
@@ -206,7 +385,11 @@
"metadata": {},
"outputs": [],
"source": [
"# Your code here"
"# Actualizamos la calificación de Filosofía de Bob a 100\n",
"grades['Bob']['Philosophy'] = 100\n",
"\n",
"# Imprimir el diccionario actualizado para verificar el cambio\n",
"print(grades)"
]
},
{
@@ -244,9 +427,20 @@
"outputs": [],
"source": [
"keys = ['Physics', 'Math', 'Chemistry', 'Philosophy']\n",
"values = [75, 85, 60,90]\n",
"values = [75, 85, 60,90]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"# Paso 1: Convertir las listas en un diccionario\n",
"grades = dict(zip(keys, values))\n",
"\n",
"# Your code here"
"# Imprimir el diccionario para verificar\n",
"print(\"Diccionario de calificaciones:\", grades)"
]
},
{
@@ -279,7 +473,11 @@
"metadata": {},
"outputs": [],
"source": [
"# Your code here"
"# Obtener la materia con la calificación mínima\n",
"subject_with_min_score = min(grades, key=grades.get)\n",
"\n",
"# Imprimir la materia con la calificación mínima\n",
"print(f\"Materia con la calificación mínima: {subject_with_min_score} ({grades[subject_with_min_score]})\")"
]
}
],