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)