DICCIONARIOS
Al igual que los diccionarios a los que usamos habitualmente en la vida diaria, los
diccionarios de Python son una lista de consulta de términos de los cuales se
proporcionan valores asociados. Los diccionarios de Python no están ordenados.
En Python, un diccionario es una colección no-ordenada de valores que son
accedidos a través de una clave. Es decir, en lugar de acceder a la información
mediante el índice numérico, como es el caso de las listas y tuplas, es posible
acceder a los valores a través de sus claves.
Las claves son únicas dentro de un diccionario, es decir que no puede haber un
diccionario que tenga dos veces la misma clave, si se asigna un valor a una clave
ya existente, se reemplaza el valor anterior.
Un diccionario es un tipo de datos que sirve para asociar pares de objetos.
Un diccionario puede ser visto como una colección de llaves, cada una de las
cuales tiene asociada un valor. Las llaves no están ordenadas y no hay llaves
repetidas. La única manera de acceder a un valor es a través de su llave.
Los diccionarios son mutables, es decir, es posible modificar su longitud, podemos
agregar o quitar elementos de él; de igual forma todos los valores almacenados en
el diccionario pueden ser modificados.
A diferencias de las listas y de las tuplas los diccionarios no se rigen por la regla de
los índices, no, nada de eso, en este caso todos los valores que se almacenen en
el diccionario no corresponderán a un índice, si no a una llave.
Para definirlo junto con los miembros que va a contener, se encierra el listado de
valores entre llaves, las parejas de clave y valor se separan con comas, y la clave y
el valor se separan con:
EJEMPLO1
punto = {'x': 2, 'y': 1, 'z': 4}
Clave ‘x’ y su valor es 2
Clave ‘z’ y su valor es 4
EJEMPLO2
diccionario = {'nombre': 'Carlos', 'edad': 22, 'cursos': ['Python','Django','JavaScript']}
Clave es ‘nombre’ y su valor es ‘Carlos’
Clave es ‘edad’ y su valor es 22
Clave es ‘curso’ y su valor es ['Python','Django','JavaScript']
Los diccionarios como estructura de datos
Un Diccionario es una estructura de datos y un tipo de dato en Python con
características especiales que nos permite almacenar cualquier tipo de valor como
enteros, cadenas, listas e incluso otras funciones. Estos diccionarios nos permiten
además identificar cada elemento por una clave (Key).
1. Para definir un diccionario, se encierra el listado de valores entre llaves. Las parejas
de clave y valor se separan con comas, y la clave y el valor se separan con dos puntos.
diccionario = {'nombre': 'Carlos', 'edad': 22, 'cursos': ['Python','Django','JavaScript']}
2. Podemos acceder al elemento de un Diccionario mediante la clave de este elemento,
como veremos a continuación:
EJEMPLO3
print (diccionario['nombre'])
print (diccionario['edad'])
print (diccionario['cursos'])
3. También es posible insertar una lista dentro de un diccionario. Para acceder a cada
uno de los cursos usamos los índices:
EJEMPLO4
print (diccionario['cursos'][0])
print (diccionario['cursos'][1])
print (diccionario['cursos'][2])
4. Para recorrer todo el Diccionario, podemos hacer uso de la estructura for:
EJEMPLO5
for key in diccionario:
print (key, ":", diccionario[key])
Para declararlo vacío e inicializarlo y luego ingresar los valores, se lo declara como
un par de llaves sin nada en medio, y luego se asignan valores directamente a los
índices.
EJEMPLO6
materias = {}
materias["lunes"] = [6103, 7540]
materias["martes"] = [6201]
materias["miércoles"] = [6103, 7540]
materias["jueves"] = []
materias["viernes"] = [6201]
Es equivalente a:
materias={'lunes': [6104, 7540], 'martes':[6201], 'miercoles':[6103, 7548], 'jueves':[],
'viernes':[6201]}
Para acceder al valor asociado a una determinada clave, se lo hace de la misma forma
que con las listas, pero utilizando la clave elegida en lugar del índice.
print (materias["lunes"])
print (materias["domingo"])
Existen diversas formas de recorrer un diccionario. Es posible recorrer sus claves y
usar esas claves para acceder a los valores.
EJEMPLO7
for dia in materias:
print (dia, ":", materias[dia])
Métodos de los Diccionarios
Un método es una función que «pertenece a» un objeto. Por ejemplo, los objetos
lista tienen métodos llamados append, insert, remove, sort, y así sucesivamente.
a) dict ()
Recibe como parámetro una representación de un diccionario y si es factible,
devuelve un diccionario de datos.
dic = dict(nombre='nestor', apellido='Plasencia', edad=22)
dic → {‘nombre’: 'nestor', ‘apellido’: 'Plasencia', ‘edad’: 22}
b) zip()
Recibe como parámetro dos elementos iterables, ya sea una cadena, una lista o
una tupla. Ambos parámetros deben tener el mismo número de elementos. Se
devolverá un diccionario relacionando el elemento i-esimo de cada uno de los
iterables.
dic =dict(zip('abcd', [1,2,3,4]))
dic → {‘a’: 1, ’b’: 2, ‘c’: 3, ‘d’: 4}
c) items()
Devuelve una lista de tuplas, cada tupla se compone de dos elementos: el primero
será la clave y el segundo, su valor.
dic = {‘a’: 1, ’b’: 2, ‘c’: 3, ‘d’: 4}
items = dic.items()
print (ítems)
d) keys()
Retorna una lista de elementos, los cuales serán las claves de nuestro diccionario.
dic = {‘a’: 1, ’b’: 2, ‘c’: 3, ‘d’: 4}
keys= dic.keys()
print (keys)
e) values()
Retorna una lista de elementos, que serán los valores de nuestro diccionario.
dic = {‘a’: 1, ’b’: 2, ‘c’: 3, ‘d’: 4}
values= dic.values()
print (values)
f) clear()
Elimina todos los ítems del diccionario dejándolo vacío.
dic1 = {‘a’: 1, ’b’: 2, ‘c’: 3, ‘d’: 4}
dic1.clean()
print(dic1)
g) copy()
Retorna una copia del diccionario original.
dic = {'a': 1, 'b': 2, 'c': 3, 'd': 4}
dic1 = dic.copy()
dic1 → {‘a’ : 1, ’b’ : 2, ‘c’ : 3 , ‘d’ : 4}
print(dic1)
h) get()
Recibe como parámetro una clave, devuelve el valor de la clave. Si no lo encuentra,
devuelve un objeto none.
dic = {‘a’: 1, ’b’: 2, ‘c’: 3, ‘d’: 4}
valor = dic.get(‘b’)
print(valor)
i) update()
Recibe como parámetro otro diccionario. Si se tienen claves iguales, actualiza el
valor de la clave repetida; si no hay claves iguales, este par clave-valor es agregado
al diccionario.
dic1 = {‘a’: 1, ’b’: 2, ‘c’: 3, ‘d’: 4}
dic2 = {‘c’: 6, ’b’: 5, ‘e’: 9, ‘f’: 10}
dic1.update(dic2)
print(dic1)