121 lines
2.7 KiB
Markdown
121 lines
2.7 KiB
Markdown
# 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'}
|
|
```
|