Blog
Los objeto diccionarios en Python son una lista desordenada, modificable e indexada. Los diccionarios en Python son declarados con llaves ({}), los elementos de un diccionario son pares de “clave-valor” en los cuales cada clave tiene un valor asignado.
Sintaxis de diccionarios en Python
- Para construir un objeto diccionario en Python se usan las llaves ({}) y para acceder a uno de sus elementos, el operador de membresía ([]) usando el índice del elmento deseado.
- La clave y valor de cada elemento de un diccionario van separados por dos puntos (:) entre cada par. Las claves deben ser objetos inmutables.
- Todos los pares “clave-valor” de un diccionario están separados por comas (,)
Los diccionarios en Python mapean un conjunto de objetos (claves) a otro conjunto de objetos (valores). Los diccionarios son mutables, lo que significa que pueden ser modificados.
Creando un nuevo diccionario
calificaciones = { 'alumno_1':3.5, 'alumno_2':8, 'alumno_3':8.9}
En este ejemplo creamos un objeto diccionario llamado calificaciones en el cual ingresamos varias notas de alumnos, cada variable alumno_x representa una clave y cada número, el valor de esta clave. Si queremos tomar un elemento en específico de este diccionario podemos hacerlo utilizando las claves. Ejemplo:
>>> calificaciones = { 'alumno_1':3.5, 'alumno_2':8, 'alumno_3':8.9}
>>> calificaciones['alumno_1']
3.5
Cuando usamos el operador de membresía en un objeto diccionario este nos devuelve el valor asociado con esta clave.
Agregando un valor a un diccinario
Podemos agregar un par “clave-valor” a un diccionario y modificar su valor si así lo queremos. Ejemplo:
>>> calificaciones['alumno_4'] = 10 >>> calificaciones['alumno_4'] 10 >>> calificaciones['alumno_4'] = 7.9 >>> calificaciones['alumno_4'] 7.9
Eliminando valores
Si queremos eliminar un par “clave-valor” de un diccionario en Python podemos hacerlo con el operador del:
>>> del calificaciones['alumno_3']
>>> print(calificaciones)
{'alumno_1':3.5 , 'alumno_2':8 , 'alumno_4':8.9 }
También podemos eliminar todos los elementos de un diccionario haciendo uso de la función dict.clear().
Obtener la longitud de un diccionario
La función len() aplicada en un diccionario, retorna la cantidad de pares que este contiene:
>>> print(len(calificaciones)) 3
Verificar si un elemento existe en el diccionario
Con el operador in podemos ver si un elemento existe en un diccionario usando su clave.
>>> mi_dicc = {'a':'uno', 'b':'dos'}
>>> 'a' in mi_dicc
True
>>> 'b' in mi_dicc
True
>>> 'c' in mi_dicc
False
Obtener el valor de una clave específica
>>> print(calificaciones.get('alumno_1', None)
3.5
Si la clave no existe en el diccionario, el valor de retorno será None
Iterarando a traves de diccionarios en Python
Los objetos diccionario en Python cuentan con un varios métodos que retornan valores iterables. Estos son:
dict.items(): retorna una lista de pares clave-valor en tuplas para ser iterados. Ejemplo:
for alumno, cal in calificaciones.items():
print('El alumno {} tiene {} puntos.'.format(alumno, cal))
dict.keys(): retorna una lista que contiene solo las claves del diccionario. Ejemplo:for alumno in calificaciones.keys(): print(alumno)dict.values(): retorna una lista que contiene solo los valores asociados a las claves del diccionario. Ejemplo:for nota in calificaciones.values(): total += nota
Ejemplo de uso
Vamos a realizar una función en Python que reciba un diccionario como argumento, este diccionario va a contener pares clave-valor en donde cada clave será una palabra en español y cada valor, su traducción al inglés.
def traducir(diccionario):
'''Takes a diccionario as input and then provides a \'traduccion service\' that
lets user type a phrase in the first language interactively and then obtain a traduccion
into the second language.'''
input_usuario = input('Ingrese una frase: ')
while input_usuario != 'Quit':
traduccion = []
for palabra in input_usuario.split():
if palabra in diccionario.keys():
traduccion.append(diccionario[palabra])
else:
traduccion.append('____')
print(' '.join(traduccion))
input_usuario = input('Ingrese una frase: ')
es_en = {'hola':'hello', 'es':'is', 'nombre':'name'}
traducir(es_en)