Apuntes_Python/02_conceptos/03_dictionaries/README.md
2022-12-24 22:41:20 -03:00

2.7 KiB

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:


Creacion de diccionario

# 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

cuadrados = {i: i*i for i in range(4)}
# {0: 0, 1: 1, 2: 4, 3: 9}

Llaves

# 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

# 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

# iterar diccionario, values()
for valor in mi_dicc.values():
    pass

# iterar diccionario, items()
for llave, valor in mi_dicc.items():
    pass

Copiar diccionario

# 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

# 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'}