Apuntes_Python/02_conceptos/03_dictionaries/README.md

121 lines
2.7 KiB
Markdown
Raw Normal View History

2022-12-24 22:41:20 -03:00
# 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)
<br>
### 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'}
```