Created
October 27, 2020 17:32
-
-
Save javifelices/d4c6c5aad9df25136e9c8f3b43205060 to your computer and use it in GitHub Desktop.
Created on Skills Network Labs
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
" <a href=\"https://cocl.us/PY0101EN_edx_add_top\">\n", | |
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Ad/TopAd.png\" width=\"750\" align=\"center\">\n", | |
" </a>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<a href=\"https://cognitiveclass.ai/\">\n", | |
" <img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Ad/CCLog.png\" width=\"200\" align=\"center\">\n", | |
"</a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h1>Diccionarios en Python</h1>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p><strong>¡Bienvenido!</strong> En este cuaderno aprenderás lo relacionado con los diccionarios en el Lenguaje de Programación Python. Al final de este laboratorio, conocerás las operaciones básicas con diccionarios en Python, incluyendo qué son, y las operaciones que puedes hacer con ellos.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2>Tabla de Contenido</h2>\n", | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
" <ul>\n", | |
" <li>\n", | |
" <a href=\"#dic\">Diccionarios</a>\n", | |
" <ul>\n", | |
" <li><a href=\"content\">¿Qué son los diccionarios?</a></li>\n", | |
" <li><a href=\"key\">Llaves</a></li>\n", | |
" </ul>\n", | |
" </li>\n", | |
" <li>\n", | |
" <a href=\"#quiz\">Cuestionario sobre Diccionarios</a>\n", | |
" </li>\n", | |
" </ul>\n", | |
" <p>\n", | |
" Tiempo Estimado: <strong>20 min</strong>\n", | |
" </p>\n", | |
"</div>\n", | |
"\n", | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"Dic\">Diccionarios</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3 id=\"content\">¿Qué son los diccionarios?</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Un diccionario esta conformado por llaves y valores. Un diccionario puede compararse a una lista. En vez de índices numéricos como los de las listas, los diccionarios tienen llaves. Estas llaves son usadas para acceder a los valores dentro de los diccionarios." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%202/Images/DictsList.png\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Un ejemplo de Diccionario <code>Dict</code>:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Crear el diccionario\n", | |
"\n", | |
"Dict = {\"key1\": 1, \"key2\": \"2\", \"key3\": [3, 3, 3], \"key4\": (4, 4, 4), ('key5'): 5, (0, 1): 6}\n", | |
"Dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Las llaves pueden ser cadenas:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Acceder a un valor mediante una llave\n", | |
"\n", | |
"Dict[\"key1\"]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Una llave puede ser cualquier tipo de objeto inmutable, pudiendo ser una tupla:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Acceder a un valor mediante una llave\n", | |
"\n", | |
"Dict[(0, 1)]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Cada llave esta separada de su respectivo valor mediante dos puntos \"<code>:</code>\". Las comas separan los elementos y todo el diccionario esta encerrado usando llaves. Un diccionario vacío se representa escribiendo solo dos llaves, de esta forma \"<code>{}</code>\"." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Crear un ejemplo de diccionario\n", | |
"\n", | |
"release_year_dict = {\"Thriller\": \"1982\", \"Back in Black\": \"1980\", \\\n", | |
" \"The Dark Side of the Moon\": \"1973\", \"The Bodyguard\": \"1992\", \\\n", | |
" \"Bat Out of Hell\": \"1977\", \"Their Greatest Hits (1971-1975)\": \"1976\", \\\n", | |
" \"Saturday Night Fever\": \"1977\", \"Rumours\": \"1977\"}\n", | |
"release_year_dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Resumiendo, al igual que una lista, un diccionario guarda una secuencia de elementos. Cada uno es representado por una llave y su valor correspondiente. Los diccionarios se crean mediante dos llaves y estas contendrán las llaves y valores separados por una coma. A cada llave solo puede corresponderle un valor, sin embargo, múltiples llaves pueden tener el mismo. Las llaves solo pueden ser cadenas, números o tuplas, pero los valores pueden ser de cualquier tipo." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Es de ayuda visualizar un diccionario como una tabla, como se muestra en la imagen. La primera columna representa las llaves, la segunda los valores." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%202/Images/DictsStructure.png\" width=\"650\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3 id=\"key\">Llaves</h3>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Los valores se pueden obtener mediante nombres:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Obtener el valor de las llaves\n", | |
"\n", | |
"release_year_dict['Thriller'] " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Esto corresponde a: \n" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%202/Images/DictsKeyOne.png\" width=\"500\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"De igual forma <b>The Bodyguard</b>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Obtener el valor mediante la llave\n", | |
"\n", | |
"release_year_dict['The Bodyguard'] " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Chapter%202/Images/DictsKeyTwo.png\" width=\"500\" />" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Ahora vamos a recuperar las llaves del diccionario mediante el método <code>release_year_dict()</code>:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Obtener todas las llaves del diccionario\n", | |
"\n", | |
"release_year_dict.keys() " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Se puede obtener los valores mediante el método <code>values()</code>:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Obtener todos los valores del diccionario\n", | |
"\n", | |
"release_year_dict.values() " | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Podemos agregar una entrada:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Agregar un valor con su llave en el diccionario\n", | |
"\n", | |
"release_year_dict['Graduation'] = '2007'\n", | |
"release_year_dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Tambien podemos borrar entradas:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Borrar entradas mediante la llave\n", | |
"\n", | |
"del(release_year_dict['Thriller'])\n", | |
"del(release_year_dict['Graduation'])\n", | |
"release_year_dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Podemos verificar si existe un elemento en el diccionario: " | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Verificar si existe la llave en el diccionario\n", | |
"\n", | |
"'The Bodyguard' in release_year_dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h2 id=\"quiz\">Cuestionario sobre Diccionarios</h2>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<b>Necesitarás este diccionario para las siguientes dos preguntas:</b>" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"{'The Bodyguard': '1992', 'Saturday Night Fever': '1977'}" | |
] | |
}, | |
"execution_count": 5, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"# Pregunta - Diccionario de ejemplo\n", | |
"\n", | |
"soundtrack_dic = {\"The Bodyguard\":\"1992\", \"Saturday Night Fever\":\"1977\"}\n", | |
"soundtrack_dic" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"a) En el diccionario <code>soundtrack_dict</code>. ¿Cuáles son las llaves?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dict_keys(['The Bodyguard', 'Saturday Night Fever'])" | |
] | |
}, | |
"execution_count": 6, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"soundtrack_dic.keys()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- Your answer is below:\n", | |
"soundtrack_dic.keys() # The Keys \"The Bodyguard\" and \"Saturday Night Fever\" \n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"b) En el diccionario <code>soundtrack_dict</code>. ¿Cuáles son los valores?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"dict_values(['1992', '1977'])" | |
] | |
}, | |
"execution_count": 7, | |
"metadata": {}, | |
"output_type": "execute_result" | |
} | |
], | |
"source": [ | |
"soundtrack_dic.values()" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- Your answer is below:\n", | |
"soundtrack_dic.values() # The values are \"1992\" and \"1977\"\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<b>Necesitarás este diccionario para las siguientes preguntas:</b>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Los discos <b>Back in Black</b>, <b>The Bodyguard</b> y <b>Thriller</b> poseen el siguiente record de ventas en millones, 50, 50 y 65 respectivamente:" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"a) Crea un diccionario <code>album_sales_dict</code> donde las llaves sean el nombre del disco y los valores la cantidad de ventas en millones." | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"album_sales_dict = {\"Back in Black\": 50, \"The Bodyguard\": 50, \"Thriller\": 65}\n", | |
"album_sales_dict" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- Your answer is below:\n", | |
"album_sales_dict = {\"The Bodyguard\":50, \"Back in Black\":50, \"Thriller\":65}\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"b) Usa el diccionario para encontrar las ventas totales de <b>Thriller</b>:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Escribe abajo tu código y presiona Shift+Enter para ejecutarlo" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Double-click __here__ for the solution.\n", | |
"\n", | |
"<!-- Your answer is below:\n", | |
"album_sales_dict[\"Thriller\"]\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"c) Encuentra los nombres de los discos dentro del diccionario mediante el método <code>keys</code>:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Escribe abajo tu código y presiona Shift+Enter para ejecutarlo" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- Your answer is below:\n", | |
"album_sales_dict.keys()\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"d) Encuentra los records de ventas dentro del diccionario mediante el método <code>values</code>:" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"# Escribe abajo tu código y presiona Shift+Enter para ejecutarlo" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Haz doble click __aquí__ para ver la solución.\n", | |
"\n", | |
"<!-- Your answer is below:\n", | |
"album_sales_dict.values()\n", | |
"-->" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>\n", | |
"<h2>¡El último ejercicio!</h2>\n", | |
"<p>Felicidades, has completado tu primera lección y practica de laboratorio en Python. Sin embargo, hay algo mas que debes saber. La comunidad en Ciencia de Datos te alienta a compartir tu trabajo. La mejor forma de hacerlo es a través de GitHub. Al compartir tus cuadernos en GitHub, además de construir una reputación entre la comunidad de los científicos de datos, también te ayudará en el proceso de encontrar un trabajo. Incluso si este fuera tu primer material de trabajo, nunca es tarde para fomentar buenos hábitos. Por favor lee y analiza <a href=\"https://cognitiveclass.ai/blog/data-scientists-stand-out-by-sharing-your-notebooks/\" target=\"_blank\">este artículo</a> para aprender a compartir tu trabajo.\n", | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<div class=\"alert alert-block alert-info\" style=\"margin-top: 20px\">\n", | |
"<h2>¡Obtén gratis IBM Watson Studio!</h2>\n", | |
" <p><a href=\"https://cocl.us/PY0101EN_edx_add_bbottom\"><img src=\"https://s3-api.us-geo.objectstorage.softlayer.net/cf-courses-data/CognitiveClass/PY0101EN/Ad/BottomAd.png\" width=\"750\" align=\"center\"></a></p>\n", | |
"</div>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<h3>Acerca de los Autores:</h3> \n", | |
"<p><a href=\"https://www.linkedin.com/in/joseph-s-50398b136/\" target=\"_blank\">Joseph Santarcangelo</a> es un Científico de Datos en IBM, además posee un doctorado en Ingeniería Eléctrica. Su trabajo de investigación se centra en el uso de Aprendizaje Automático (Machine Learning), Procesamiento de Señales y Visión Artificial para determinar el impacto de los videos en el proceso cognitivo. Joseph trabaja en IBM desde la terminación de su doctorado.</p>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Otros colaboradores: <a href=\"www.linkedin.com/in/jiahui-mavis-zhou-a4537814a\">Mavis Zhou</a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<hr>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"<p>Copyright © 2018 IBM Developer Skills Network. This notebook and its source code are released under the terms of the <a href=\"https://cognitiveclass.ai/mit-license/\">MIT License</a>.</p>" | |
] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python", | |
"language": "python", | |
"name": "conda-env-python-py" | |
}, | |
"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.6.11" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 4 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment