{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Diccionarios" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Los diccionarios tambien son un tipo primitivo, se ponen los elementos entre llaves, la clave y el valor se separan con ':' ({} = diccionario vacio) . La clave no tiene porque ser un string, solo hace falta que se le pueda aplicar una funcion de hash (objeto no mutable)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{}" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = {}\n", "a" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'pepe': 1, 'juan': 3.14, 'maria': [1, 2, 3]}" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a = {'pepe': 1, 'juan': 3.14, 'maria': [1, 2, 3]}\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos acceder por clave" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "1" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a['pepe']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos consultar si una clave existe en el diccionario" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "'pepe' in a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Y usar cada elemento dependiendo de su tipo" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "2" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a['maria'][1]" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos cambiar el valor de la clave" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'pepe': 1, 'juan': (1, 2), 'maria': [1, 2, 3]}" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a['juan'] = (1,2)\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Y tenemos las operaciones esperadas sobre diccionarios, como obtener todas las claves o todos sus valores en una lista " ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['pepe', 'juan', 'maria'])" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.keys()" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_values([1, (1, 2), [1, 2, 3]])" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.values()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos fusionar diccionarios" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'pepe': 1, 'juan': (1, 2), 'maria': [1, 2, 3], 'luis': 3, 'jose': 324}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.update({'luis':3, 'jose': 324})\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos borrar claves" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'juan': (1, 2), 'maria': [1, 2, 3], 'luis': 3, 'jose': 324}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a.pop('pepe')\n", "a" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos tener como valores otros diccionarios e indexarlos a diferentes niveles" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'pepe': {'perez': 33, 'garcia': 27}}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b = {'pepe': {'perez': 33, 'garcia': 27} }\n", "b" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "33" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b['pepe']['perez']" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Si damos un valor a una clave que no esta en el diccionario la aƱadimos" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'pepe': {'perez': 33, 'garcia': 27, 'ruiz': 22}}" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b['pepe']['ruiz'] = 22\n", "b" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos obtener el diccionario como una lista de tuplas (clave, valor)" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_items([('perez', 33), ('garcia', 27), ('ruiz', 22)])" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "b['pepe'].items()" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "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.6" }, "latex_envs": { "LaTeX_envs_menu_present": true, "autoclose": false, "autocomplete": true, "bibliofile": "biblio.bib", "cite_by": "apalike", "current_citInitial": 1, "eqLabelWithNumbers": true, "eqNumInitial": 1, "hotkeys": { "equation": "Ctrl-E", "itemize": "Ctrl-I" }, "labels_anchors": false, "latex_user_defs": false, "report_style_numbering": false, "user_envs_cfg": false }, "toc": { "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "toc_cell": false, "toc_position": {}, "toc_section_display": "block", "toc_window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }