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).
a = {}
a
{}
a = {'pepe': 1, 'juan': 3.14, 'maria': [1, 2, 3]}
a
{'pepe': 1, 'juan': 3.14, 'maria': [1, 2, 3]}
Podemos acceder por clave
a['pepe']
1
Podemos consultar si una clave existe en el diccionario
'pepe' in a
True
Y usar cada elemento dependiendo de su tipo
a['maria'][1]
2
Podemos cambiar el valor de la clave
a['juan'] = (1,2)
a
{'pepe': 1, 'juan': (1, 2), 'maria': [1, 2, 3]}
Y tenemos las operaciones esperadas sobre diccionarios, como obtener todas las claves o todos sus valores en una lista
a.keys()
dict_keys(['pepe', 'juan', 'maria'])
a.values()
dict_values([1, (1, 2), [1, 2, 3]])
Podemos fusionar diccionarios
a.update({'luis':3, 'jose': 324})
a
{'pepe': 1, 'juan': (1, 2), 'maria': [1, 2, 3], 'luis': 3, 'jose': 324}
Podemos borrar claves
a.pop('pepe')
a
{'juan': (1, 2), 'maria': [1, 2, 3], 'luis': 3, 'jose': 324}
Podemos tener como valores otros diccionarios e indexarlos a diferentes niveles
b = {'pepe': {'perez': 33, 'garcia': 27} }
b
{'pepe': {'perez': 33, 'garcia': 27}}
b['pepe']['perez']
33
Si damos un valor a una clave que no esta en el diccionario la añadimos
b['pepe']['ruiz'] = 22
b
{'pepe': {'perez': 33, 'garcia': 27, 'ruiz': 22}}
Podemos obtener el diccionario como una lista de tuplas (clave, valor)
b['pepe'].items()
dict_items([('perez', 33), ('garcia', 27), ('ruiz', 22)])