Académique Documents
Professionnel Documents
Culture Documents
Referencia
Diccionarios, El tutorial de Python, Pag 33-34
Diccionarios
Los diccionarios son colecciones de datos que permiten definir y acceder a los componentes
mediante una clave. Cada componente de un diccionario es un par {clave: valor}.
La clave puede ser cualquier tipo de dato inmutable: primitivos, cadenas de caracteres, tuplas,
entre otros.
Las claves son únicas
Los diccionarios se indexan con claves, No se indexan mediante un rango numérico, como listas o
tuplas.
Operaciones Diccionario
También podemos acceder a el valor de una clave usando la función get, si la clave no existe
retorna None
n = plato.get("nombre") #"encebollado"
n = plato.get("test") #None
codigo = {123:"Matematicas",234:"Fisica",453:"Quimica"}
if 234 in codigo: El codigo anterior
print(codigo[234]) imprime “Fisica” que es
else: el valor almacenado en
print("codigo 234 no existe en el diccionario")
la clave 234
NOTA: Si no estamos seguro que una clave se encuentra en un diccionario, chequear primero
si existe dicha clave con el operador in antes de usarla. Usar una clave que no existe en un
diccionario produce error.
Ejemplo 1:
agenda = {"rocio":6038222,
"carlos":234566789,
"maria":2456789}
Pregunta 4: Qué instrucción(es) debo utilizar para aumentar un estudiante al paralelo 14?
Pregunta 5: Cómo puedo saber cuántos estudiantes hay en el Paralelo02?
Pregunta 6: Cuál es el resultado de la instrucción print(paralelos['paralelo08'] ?
Pregunta 7: Qué instrucción(es) debo utilizar para crear un nuevo paralelo (Paralelo 40) con 0
estudiantes?
Pregunta 8: El Paralelo14 se cerró. Elimine el paralelo del diccionario paralelos?
Use la estructura for para iterar sobre un diccionario, similar que cuando se itera sobre una
lista. Al iterar sobre un diccionario se obtienen las claves del diccionario.
#cuando recorremos un contacto con un for
#obtenemos las claves en el diccionario
for contacto in agenda:
print(contacto)
Para obtener los valores al iterar, usamos las claves de dichos valores
#usamos la clave para obtener el valor almacenado en la clave
for contacto in agenda:
print("clave: ",contacto, ",numero: ", agenda[contacto])
Ejemplo 2:
agenda = {"rocio":6038222,
"carlos":234566789,
"maria":2456789}
#bucar el contacto al que le pertene un numero telefonico dado
numero = int(input("ingrese numero telefonico"))
#para verficiar si una clave existe en un diccionario usamos el operador in
nombre = ""
for clave in agenda:
if agenda[clave]==numero:
nombre=clave
if nombre!="":
print(nombre)
else:
print("No existe contacto con ese numero")
Ejemplo 3:
Escribir una función llamada contar_palabras(frase) que reciba una cadena de caracteres y
devuelva un diccionario dónde las claves son las palabras y los valores el número de veces
que aparece cada palabra.
>>> contar_palabras(“Ecuador ama la vida Ecuador es cool”)
{“Ecuador”:2, “ama”:1, “la”:1, “vida”:1, “es”:1, “cool”:1}
Solución:
#1) dividimos la frase en palabras.
# Para devidir dividir la frase en palabras usamos el metodo split
# que retorna una lista a partir de una cadena de caracteres, dado
# un delimitador
#2) recorremos la lista de palabras, para ir contando el numero de veces que aparecen
#3) Agregamos la palabra al diccionario y contamos cuantas veces a ocurrido
# Tenmos dos posibles escenarios
# La palabra aparece por primera vez en la frase:
# agregamos la palabra al diccionario con valor de 1
# el valor es el numero d eveces que ha apercido la palabra en el diccionario, como
# es la primera vez que la palabra aparece fijamos el valor de 1.
# La palabra aparece nuevamente
# sabemos que no es la primera vez que la palabra aparece en la frase porque la
# palabra ya se encuentra agregada al diccionario
# lo que hacemos en este caso el aumentar el valor en 1.
def contar_palabras(frase):
#diccionario vacio que se usa para contar las frecuencias
num_palabras = {}
#para contar la misma palabra sin importar si esta en mayuscula o minuscula
frase = frase.lower()
palabras = frase.split()
for p in palabras:
# verificar si es la primera vez que aparece la palabra en la frase o esta ya ha aparecdio
# nateriormente
if p in num_palabras:
# La palabra aparece nuevamente
# aumentamos el contador de apariciones para esa palabra en 1
num_palabras[p] = num_palabras[p]+1
else:
# La palabra aparece por primera vez en la frase
# agregamos la palabra al diccionario con valor de 1
num_palabras[p] = 1
return num_palabras
Ejercicio 9
Una compañía proveedora de internet desea hacer una segmentación de sus clientes según su ubicación
geográfica. Para esto, analizará su base de datos de correos electrónicos con el fin obtener información
sobre el lugar de procedencia de cada cliente.
Algunos TLD no están asociados a un país, sino que representan otro tipo de entidades. Estos TLD
genéricos son los siguentes:
genericos = {'com', 'gov', 'edu', 'org', 'net', 'mil', 'biz', 'info', 'name',
'int'}
>>> contar_tdl(corres,genericos)
{'ec': 3, 'cn': 2, 'de': 3, 'cz': 2, 'cl': 5}
Pista:
1) Debo recorrer la lista de correos y de cada correo extraer el tdl
2) Si el tdl no se encuentra en el conjunto de tdl genéricos debo:
a. Si este no se encontraba previamente en el diccionario agregarlo al contador con el
valor de uno
b. Caso contrario incrementar el valor de ese tdl en 1.