Estructuras de datos – Diccionarios
Un diccionario es una secuencia de pares clave,valor que pueden ser de cualquier tipo.
Se usan para buscar en la secuencia de forma asociativa por una clave en vez de por un índice como en las listas.
El uso típico es para implementar un diccionario entre dos idiomas
Ejemplo
Diccionario para traducir del español al inglés
esp_ing = { ‘uno’: ‘one’, ‘dos’:’two’, ‘tres’: ‘three’}
El diccionario se indica con corchetes {} y los elementos separados por comas.
Hay que tener en cuenta que el orden de las claves,valor no se almacena tal como se define.
En el diccionario podemos buscar por la clave
Ejemplo
esp_ing[‘dos’] seria ‘two’
Operaciones sobre diccionarios
len(d) devuelve el número de elementos del diccionario
d.values() devuelve una lista con los valores del diccionario (sin las claves)
d.keys() devuelve una lista con las claves del diccionario (sin los valores)
c in d devuelve True si la clave c está en el diccionario
d[c] = v si la clave c está en el diccionario asocia el valor v a la clave c
si c no está en el diccionario añade la clave c y le asocia el valor v
Ejemplo: Contar palabras de un texto
Un uso muy común de los diccionarios es contar las palabras que hay en un texto o párrafo.
contadores = dict()
palabras = texto.split()
for palabra in palabras:
if palabra not in contadores:
contadores[palabra] = 1
else:
contadores[palabra] = contadores[palabra]+1
print (contadores)
1 se crea un diccionario vacío contadores con dict()
2 se extraen las palabras del texto con texto.split() y se ponen en la lista palabras
3 se recorren las palabras de la lista
4 si la palabra no está como clave en el diccionario se añade la palabra como clave y se le asocia el valor 1
7 si la palabra ya está en el diccionario se incrementa su contador
Si ejecutamos el ejemplo anterior saldría algo como
{‘esto’: 1, ‘es’: 1, ‘un’: 2, ‘texto’: 2, ‘de’: 1, ‘pruebas’: 1, ‘para’: 1, ‘contar’: 1, ‘las’: 1, ‘palabras’: 2, ‘con’: 1, ‘diccionario’: 1, ‘este’: 1, ‘no’: 1, ‘tiene’: 1, ‘muchas’: 1}