Tipo de datos mapa: diccionario
Los diccionarios son tipos de datos que nos permiten guardar valores, a los que se puede acceder por medio de una clave. Son tipos de datos mutables y los campos no tienen asignado orden.
Definición de diccionarios. Constructor dict
>>> a = dict(one=1, two=2, three=3)
>>> b = {'one': 1, 'two': 2, 'three': 3}
>>> c = dict(zip(['one', 'two', 'three'], [1, 2, 3]))
>>> d = dict([('two', 2), ('one', 1), ('three', 3)])
>>> e = dict({'three': 3, 'one': 1, 'two': 2})
>>> a == b == c == d == e
True
Si tenemos un diccionario vacío, al ser un objeto mutable, también podemos construir el diccionario de la siguiente manera.
>>> dict1 = {}
>>> dict1["one"]=1
>>> dict1["two"]=2
>>> dict1["three"]=3
Operaciones básicas con diccionarios
>>> a = dict(one=1, two=2, three=3)
-
len()
: Devuelve número de elementos del diccionario.>>> len(a) 3
-
Indexación: Podemos obtener el valor de un campo o cambiarlo (si no existe el campo nos da una excepción
KeyError
):>>> a["one"] 1 >>> a["one"]+=1 >>> a {'three': 3, 'one': 2, 'two': 2}
-
del()
:Podemos eliminar un elemento, si no existe el campo nos da una excepciónKeyError
:>>> del(a["one"]) >>> a {'three': 3, 'two': 2}
-
Operadores de pertenencia:
key in d
ykey not in d
.>>> "two" in a True
-
iter()
: Nos devuelve un iterador de las claves.>>> next(iter(a)) 'three'
Los diccionarios son tipos mutables
Los diccionarios, al igual que las litas, son tipos de datos mutable. Por lo tanto podemos encontrar situaciones similares a las que explicamos en su momentos con las listas.
>>> a = dict(one=1, two=2, three=3)
>>> a["one"]=2
>>> del(a["three"])
>>> a
{'one': 2, 'two': 2}
>>> a = dict(one=1, two=2, three=3)
>>> b = a
>>> del(a["one"])
>>> b
{'three': 3, 'two': 2}
En este caso para copiar diccionarios vamos a usar el método copy()
:
>>> a = dict(one=1, two=2, three=3)
>>> b = a.copy()
>>> a["one"]=1000
>>> b
{'three': 3, 'one': 1, 'two': 2}