Skip to content
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
245 changes: 225 additions & 20 deletions lab-python-data-structures.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -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"
]
},
{
Expand Down Expand Up @@ -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"
]
},
{
Expand Down Expand Up @@ -136,7 +216,7 @@
},
{
"cell_type": "code",
"execution_count": null,
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -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"
]
},
{
Expand All @@ -193,7 +322,7 @@
},
{
"cell_type": "code",
"execution_count": 51,
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
Expand All @@ -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"
]
},
{
Expand Down Expand Up @@ -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"
]
},
{
Expand Down Expand Up @@ -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"
},
Expand All @@ -299,7 +504,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.13"
"version": "3.14.0"
}
},
"nbformat": 4,
Expand Down