# Diccionarios Los Diccionarios son un tipo de dato para almacernar colecciones de datos (collection data types: List, Tuple, Set, Dictionary) Diccionario: Par Llave-Valor, desordenada, mutable. Ejemplos: - [Creación de diccionario](#creación-de-diccionario) - [Comprensión de diccionario](#comprensión-de-diccionario) - [Llaves](#llaves) - [Operaciones sobre diccionarios](#operaciones-sobre-diccionarios) - [Recorrer, iterar diccionario](#recorrer%2C-iterar-diccionario) - [Copiar diccionario](#copiar-diccionario) - [Fusión de diccionarios](#fusión-de-diccionarios)
### Creacion de diccionario ```python # Creación diccionario vacío mi_dicc = {} # diccionario con pares key-value mi_dicc = {'nombre': 'Clarence', 'edad': 31, 'ciudad': 'Lo Zerafín'} # funcion dict() mi_dicc = dict(nombre='Clarence', edad=31, ciudad='Lo Zerafín') ``` ### Comprensión de diccionario ```python cuadrados = {i: i*i for i in range(4)} # {0: 0, 1: 1, 2: 4, 3: 9} ``` ### Llaves ```python # tipos de datos de llaves # numeros, strings, tuplas de elementos inmutables... mi_dicc = {3: 9, 7:32, 21:3} mi_dicc[3] # 9 # las listas son mutables, no pueden usarse como llaves mi_dicc = {(2, 6): 8} ``` ## Operaciones sobre diccionarios ```python # acceder a valor valor = mi_dicc['nombre'] # Clarence # agregar par clave valor mi_dicc['mail'] = "clarence@dolares.up" # modficiar valor mi_dicc['mail'] = 'otro@mail.ip' # borrar item del mi_dicc['ciudad'] # extraer o eliminar con pop('llave') mi_dicc.pop('edad') # popitem(), elimina el último item ordenado mi_dicc.popitem() mi_dicc = dict(nombre='Clarence', edad=31, ciudad='Lo Zerafín') # verifcar si existe una llave if 'nombre' in mi_dicc: valor = mi_dicc['nombre'] # verifcar con try-catch try: msg = mi_dicc['fecha nacimiento'] except KeyError: msg = KeyError finally: print(msg) # Obtener item con get('llave') mi_dicc.get('edades') # retorna None si existe ``` ### Recorrer, iterar diccionario ```python # iterar diccionario, values() for valor in mi_dicc.values(): pass # iterar diccionario, items() for llave, valor in mi_dicc.items(): pass ``` ### Copiar diccionario ```python # esta asignación hace referencia al mismo punto en memoria dicc_copia = mi_dicc # cualquier cambio en dicc_copia modfica al mi_dicc. # copiar diccionario copy() dicc_copia = mi_dicc.copy() # copiar diccionario dict(diccionario) dicc_copia = dict(mi_dicc) ``` ### Fusión de diccionarios ```python # fusionar diccionarios mi_dicc = dict(nombre='Clarence', edad=31, mail='mi@mail') mi_dicc2 = dict(nombre='Estanislao', edad=30, ciudad='Pto. Natales') mi_dicc.update(mi_dicc2) # {'nombre': 'Estanislao', 'edad': 30, 'mail': 'mi@mail', 'ciudad': 'Pto. Natales'} ```