{"id":928,"date":"2025-09-05T01:04:13","date_gmt":"2025-09-05T01:04:13","guid":{"rendered":"https:\/\/hmoweb.net\/Python\/?p=928"},"modified":"2025-09-05T02:38:09","modified_gmt":"2025-09-05T02:38:09","slug":"ejercicio-13-diccionarios-colecciones","status":"publish","type":"post","link":"https:\/\/hmoweb.net\/Python\/2025\/09\/05\/ejercicio-13-diccionarios-colecciones\/","title":{"rendered":"Ejercicio 13 Diccionarios (Colecciones)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Vamos a escribir el Ejercicio 13 Diccionarios del grupo Colecciones. Es recomendable que este ejercicio lo escribas (trata de no copiarlo y pegarlo), lo ejecutas y revisas el resultado esperado. Despu\u00e9s utiliza el debugger para ejecutar el programa paso por paso.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: python; title: ; notranslate\" title=\"\">\n&quot;&quot;&quot;\nEjercicio 13 Diccionarios\n04\/09\/2025\nEdito AHR\n&quot;&quot;&quot;\n\n# Los diccionarios son colecciones desordenadas de pares clave-valor\n# Se definen con llaves {} y los pares clave-valor se separan por comas\n# Las claves deben ser \u00fanicas e inmutables (n\u00fameros, cadenas, tuplas), mientras que los valores pueden ser de cualquier tipo de dato\n# No se pueden accesar a traves de un indice, de hay que se diga que son desordenados\n# Crear un diccionario con diferentes tipos de datos\n\ndiccionario1 = {}  # Crear un diccionario vac\u00edo\nprint(&quot;Imprimiendo diccionario1:&quot;, diccionario1)\n\ndiccionario = {\n    &quot;nombre&quot;: &quot;Juan&quot;,\n    &quot;edad&quot;: 30,\n    &quot;ciudad&quot;: &quot;Madrid&quot;,\n    &quot;activo&quot;: True,\n    &quot;hobbies&quot;: &#x5B;&quot;f\u00fatbol&quot;, &quot;lectura&quot;, &quot;viajes&quot;]\n}\n\n# Imprimir el diccionario\nprint(&quot;Diccionario:&quot;, diccionario) \nprint(&quot;Tipo de diccionario:&quot;, type(diccionario))\nprint(&quot;Longitud del diccionario:&quot;, len(diccionario))  # Imprime 5, ya que el diccionario tiene 5 pares clave-valor\nprint(&quot;Claves del diccionario:&quot;, diccionario.keys())  # Imprime las claves del diccionario\nprint(&quot;Valores del diccionario:&quot;, diccionario.values())  # Imprime los valores del diccionario\nprint(&quot;\u00cdtems del diccionario:&quot;, diccionario.items())  # Imprime los pares clave-valor del diccionario  \n\n# Acceder a elementos del diccionario mediante su clave\nprint(&quot;Nombre:&quot;, diccionario&#x5B;&quot;nombre&quot;])  # Imprime &quot;Juan&quot;   \nprint(&quot;Edad:&quot;, diccionario.get(&quot;edad&quot;))  # Imprime 30\nprint(&quot;Ciudad:&quot;, diccionario&#x5B;&quot;ciudad&quot;])  # Imprime &quot;Madrid&quot;\nprint(&quot;\u00bfEst\u00e1 activo?&quot;, diccionario.get(&quot;activo&quot;))  # Imprime True\nprint(&quot;Hobbies:&quot;, diccionario&#x5B;&quot;hobbies&quot;])  # Imprime &#x5B;&quot;f\u00fatbol&quot;, &quot;lectura&quot;, &quot;viajes&quot;]\nprint(&quot;Primer hobby:&quot;, diccionario&#x5B;&quot;hobbies&quot;]&#x5B;0])  # Imprime &quot;f\u00fatbol&quot;\n# Intentar acceder a una clave que no existe (esto generar\u00e1 un error)\n\nprint(&quot;Pa\u00eds:&quot;, diccionario.get(&quot;pa\u00eds&quot;, &quot;No especificado&quot;))  # Imprime &quot;No especificado&quot; si la clave no existe\nprint(&quot;Nombre:&quot;, diccionario.get(&quot;nombre&quot;, &quot;No especificado&quot;))  # Imprime &quot;Juan&quot; si la clave existe\n# Agregar un nuevo par clave-valor al diccionario\ndiccionario&#x5B;&quot;pa\u00eds&quot;] = &quot;Espa\u00f1a&quot; # Agrega la clave &quot;pa\u00eds&quot; con el valor &quot;Espa\u00f1a&quot;\nprint(&quot;Diccionario despu\u00e9s de agregar pa\u00eds:&quot;, diccionario)\n\n# Actualizar el valor de una clave existente\ndiccionario&#x5B;&quot;edad&quot;] = 31  # Cambia la edad de 30 a 31\nprint(&quot;Diccionario despu\u00e9s de actualizar edad:&quot;, diccionario)\n\n# Eliminar un par clave-valor del diccionario\ndel diccionario&#x5B;&quot;activo&quot;]  # Elimina la clave &quot;activo&quot; y su valor\nprint(&quot;Diccionario despu\u00e9s de eliminar activo:&quot;, diccionario)\n\n# Eliminar un par clave-valor usando pop()\nvalor_eliminado = diccionario.pop(&quot;hobbies&quot;, &quot;No especificado&quot;)\nprint(&quot;Diccionario despu\u00e9s de usar pop():&quot;, diccionario)\nprint(&quot;Valor eliminado:&quot;, valor_eliminado)  # Limpiar el diccionario\n\n# Limpiar el diccionario\ndiccionario.clear()  # El m\u00e9todo clear() elimina todos los pares clave-valor del diccionario\nprint(&quot;Diccionario despu\u00e9s de limpiar:&quot;, diccionario)  # Imprime {}\nprint(&quot;Longitud del diccionario despu\u00e9s de limpiar:&quot;, len(diccionario))  # Imprime 0\n\n# Verificar si una clave est\u00e1 en el diccionario\ndiccionario = {\n    &quot;nombre&quot;: &quot;Juan&quot;,\n    &quot;edad&quot;: 30,\n    &quot;ciudad&quot;: &quot;Madrid&quot;\n}\nprint(&quot;\u00bfNombre est\u00e1 en el diccionario?&quot;, &quot;nombre&quot; in diccionario)  # Imprime True\nprint(&quot;\u00bfEdad est\u00e1 en el diccionario?&quot;, &quot;edad&quot; in diccionario)  # Imprime True\nprint(&quot;\u00bfCiudad est\u00e1 en el diccionario?&quot;, &quot;ciudad&quot; in diccionario)  # Imprime True\nprint(&quot;\u00bfPa\u00eds est\u00e1 en el diccionario?&quot;, &quot;pa\u00eds&quot; in diccionario)  # Imprime False\n\n# Verificar si una clave no est\u00e1 en el diccionario\nprint(&quot;\u00bfPa\u00eds no est\u00e1 en el diccionario?&quot;, &quot;pa\u00eds&quot; not in diccionario)  # Imprime True\nprint(&quot;\u00bfNombre no est\u00e1 en el diccionario?&quot;, &quot;nombre&quot; not in diccionario)  # Imprime False  \n\n# Diccionarios anidados\ndiccionario_anidado = {\n    &quot;persona&quot;: {\n        &quot;nombre&quot;: &quot;Juan&quot;,\n        &quot;edad&quot;: 30,\n        &quot;ciudad&quot;: &quot;Madrid&quot;\n    },\n    &quot;empleo&quot;: {\n        &quot;puesto&quot;: &quot;Desarrollador&quot;,\n        &quot;empresa&quot;: &quot;Tech Solutions&quot;\n    }\n}\n\nprint(&quot;Diccionario anidado:&quot;, diccionario_anidado)\nprint(&quot;Nombre de la persona:&quot;, diccionario_anidado&#x5B;&quot;persona&quot;]&#x5B;&quot;nombre&quot;])  # Imprime &quot;Juan&quot;\nprint(&quot;Puesto de empleo:&quot;, diccionario_anidado&#x5B;&quot;empleo&quot;]&#x5B;&quot;puesto&quot;])  # Imprime &quot;Desarrollador&quot;\nprint(&quot;Empresa de empleo:&quot;, diccionario_anidado&#x5B;&quot;empleo&quot;]&#x5B;&quot;empresa&quot;])  # Imprime &quot;Tech Solutions&quot;\n# Actualizar un valor en un diccionario anidado\ndiccionario_anidado&#x5B;&quot;persona&quot;]&#x5B;&quot;edad&quot;] = 31  # Cambia la edad de 30 a 31\nprint(&quot;Diccionario anidado despu\u00e9s de actualizar edad:&quot;, diccionario_anidado)  # Agregar un nuevo par clave-valor en un diccionario anidado\ndiccionario_anidado&#x5B;&quot;persona&quot;]&#x5B;&quot;pa\u00eds&quot;] = &quot;Espa\u00f1a&quot;  # Agrega la clave &quot;pa\u00eds&quot; con el valor &quot;Espa\u00f1a&quot;\nprint(&quot;Diccionario anidado despu\u00e9s de agregar pa\u00eds:&quot;, diccionario_anidado)  \n\n# Eliminar un par clave-valor en un diccionario anidado\ndel diccionario_anidado&#x5B;&quot;empleo&quot;]&#x5B;&quot;empresa&quot;]  # Elimina la clave &quot;empresa&quot; y su valor\nprint(&quot;Diccionario anidado despu\u00e9s de eliminar empresa:&quot;, diccionario_anidado)\n\n# Eliminar un par clave-valor usando pop() en un diccionario anidado\nvalor_eliminado = diccionario_anidado&#x5B;&quot;persona&quot;].pop(&quot;ciudad&quot;, &quot;No especificado&quot;)\nprint(&quot;Diccionario anidado despu\u00e9s de usar pop():&quot;, diccionario_anidado)            \nprint(&quot;Valor eliminado:&quot;, valor_eliminado)  # Imprime &quot;Madrid&quot;\n\n# Limpiar un diccionario anidado\ndiccionario_anidado&#x5B;&quot;empleo&quot;].clear()  # El m\u00e9todo clear() elimina todos los pares clave-valor del diccionario anidado &quot;empleo&quot;\nprint(&quot;Diccionario anidado despu\u00e9s de limpiar empleo:&quot;, diccionario_anidado) \nprint(&quot;Longitud del diccionario anidado despu\u00e9s de limpiar empleo:&quot;, len(diccionario_anidado&#x5B;&quot;empleo&quot;]))  # Imprime 0\n\n# Nota: No se pueden usar listas o diccionarios como claves en un diccionario, ya que no son inmutables\n\n# Sin embargo, se pueden usar tuplas como claves si contienen solo elementos inmutables (enteros, cadenas, tuplas)\ndiccionario_tupla_clave = {\n    (&quot;nombre&quot;, &quot;Juan&quot;): 1,\n    (&quot;edad&quot;, 30): 2,\n    (&quot;ciudad&quot;, &quot;Madrid&quot;): 3\n}   \nprint(&quot;Diccionario con tuplas como claves:&quot;, diccionario_tupla_clave)\nprint(&quot;Valor para la clave (&#039;nombre&#039;, &#039;Juan&#039;):&quot;, diccionario_tupla_clave&#x5B;(&quot;nombre&quot;, &quot;Juan&quot;)])  # Imprime 1\nprint(&quot;Valor para la clave (&#039;edad&#039;, 30):&quot;, diccionario_tupla_clave&#x5B;(&quot;edad&quot;, 30)])  # Imprime 2\nprint(&quot;Valor para la clave (&#039;ciudad&#039;, &#039;Madrid&#039;):&quot;, diccionario_tupla_clave&#x5B;(&quot;ciudad&quot;, &quot;Madrid&quot;)])  # Imprime 3\n\n# Intentar usar una lista o diccionario como clave (esto generar\u00e1 un error)\n# diccionario_lista_clave = {   &#x5B;&quot;nombre&quot;, &quot;Juan&quot;]: 1}  # Error: las listas no son inmutables\n# diccionario_diccionario_clave = {   {&quot;nombre&quot;: &quot;Juan&quot;}: 1}  # Error: los diccionarios no son inmutables\n# Fin del ejercicio de diccionarios \n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">Veamos los resultados en la consola:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>PS C:\\Users\\Codigo\/Modulo 3\/Capitulo_2\/Ejercicio_13_Diccionarios.py\"\nImprimiendo diccionario1: {}\nDiccionario: {'nombre': 'Juan', 'edad': 30, 'ciudad': 'Madrid', 'activo': True, 'hobbies': &#91;'f\u00fatbol', 'lectura', 'viajes']}\nTipo de diccionario: &lt;class 'dict'>\nLongitud del diccionario: 5\nClaves del diccionario: dict_keys(&#91;'nombre', 'edad', 'ciudad', 'activo', 'hobbies'])\nValores del diccionario: dict_values(&#91;'Juan', 30, 'Madrid', True, &#91;'f\u00fatbol', 'lectura', 'viajes']])\n\u00cdtems del diccionario: dict_items(&#91;('nombre', 'Juan'), ('edad', 30), ('ciudad', 'Madrid'), ('activo', True), ('hobbies', &#91;'f\u00fatbol', 'lectura', 'viajes'])])\nNombre: Juan\nEdad: 30\nCiudad: Madrid\n\u00bfEst\u00e1 activo? True\nHobbies: &#91;'f\u00fatbol', 'lectura', 'viajes']\nPrimer hobby: f\u00fatbol\nPa\u00eds: No especificado\nNombre: Juan\nDiccionario despu\u00e9s de agregar pa\u00eds: {'nombre': 'Juan', 'edad': 30, 'ciudad': 'Madrid', 'activo': True, 'hobbies': &#91;'f\u00fatbol', 'lectura', 'viajes'], 'pa\u00eds': 'Espa\u00f1a'}\nDiccionario despu\u00e9s de actualizar edad: {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid', 'activo': True, 'hobbies': &#91;'f\u00fatbol', 'lectura', 'viajes'], 'pa\u00eds': 'Espa\u00f1a'}\nDiccionario despu\u00e9s de eliminar activo: {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid', 'hobbies': &#91;'f\u00fatbol', 'lectura', 'viajes'], 'pa\u00eds': 'Espa\u00f1a'}\nDiccionario despu\u00e9s de usar pop(): {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid', 'pa\u00eds': 'Espa\u00f1a'}\nValor eliminado: &#91;'f\u00fatbol', 'lectura', 'viajes']\nDiccionario despu\u00e9s de limpiar: {}\nLongitud del diccionario despu\u00e9s de limpiar: 0\n\u00bfNombre est\u00e1 en el diccionario? True\n\u00bfEdad est\u00e1 en el diccionario? True\n\u00bfCiudad est\u00e1 en el diccionario? True\n\u00bfPa\u00eds est\u00e1 en el diccionario? False\n\u00bfPa\u00eds no est\u00e1 en el diccionario? True\n\u00bfNombre no est\u00e1 en el diccionario? False\nDiccionario anidado: {'persona': {'nombre': 'Juan', 'edad': 30, 'ciudad': 'Madrid'}, 'empleo': {'puesto': 'Desarrollador', 'empresa': 'Tech Solutions'}}\nNombre de la persona: Juan\nPuesto de empleo: Desarrollador\nEmpresa de empleo: Tech Solutions\nDiccionario anidado despu\u00e9s de actualizar edad: {'persona': {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid'}, 'empleo': {'puesto': 'Desarrollador', 'empresa': 'Tech Solutions'}}\nDiccionario anidado despu\u00e9s de agregar pa\u00eds: {'persona': {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid', 'pa\u00eds': 'Espa\u00f1a'}, 'empleo': {'puesto': 'Desarrollador', 'empresa': 'Tech Solutions'}}   \nDiccionario anidado despu\u00e9s de eliminar empresa: {'persona': {'nombre': 'Juan', 'edad': 31, 'ciudad': 'Madrid', 'pa\u00eds': 'Espa\u00f1a'}, 'empleo': {'puesto': 'Desarrollador'}}\nDiccionario anidado despu\u00e9s de usar pop(): {'persona': {'nombre': 'Juan', 'edad': 31, 'pa\u00eds': 'Espa\u00f1a'}, 'empleo': {'puesto': 'Desarrollador'}}\nValor eliminado: Madrid\nDiccionario anidado despu\u00e9s de limpiar empleo: {'persona': {'nombre': 'Juan', 'edad': 31, 'pa\u00eds': 'Espa\u00f1a'}, 'empleo': {}}\nLongitud del diccionario anidado despu\u00e9s de limpiar empleo: 0\nDiccionario con tuplas como claves: {('nombre', 'Juan'): 1, ('edad', 30): 2, ('ciudad', 'Madrid'): 3}\nValor para la clave ('nombre', 'Juan'): 1\nValor para la clave ('edad', 30): 2\nValor para la clave ('ciudad', 'Madrid'): 3<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Vamos a escribir el Ejercicio 13 Diccionarios del grupo Colecciones. Es recomendable que este ejercicio lo escribas (trata de no copiarlo y pegarlo), lo ejecutas y revisas el resultado esperado. Despu\u00e9s utiliza el debugger para ejecutar el programa paso por paso. Veamos los resultados en la consola:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"pagelayer_contact_templates":[],"_pagelayer_content":"","_themeisle_gutenberg_block_has_review":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-928","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/posts\/928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/comments?post=928"}],"version-history":[{"count":2,"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/posts\/928\/revisions"}],"predecessor-version":[{"id":933,"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/posts\/928\/revisions\/933"}],"wp:attachment":[{"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/media?parent=928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/categories?post=928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hmoweb.net\/Python\/wp-json\/wp\/v2\/tags?post=928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}