Dict Comprehension
9 - Una empresa tiene sucursales distribuidas en los estados de la región Sudeste de Brasil. En una de las tablas de registro de las sucursales, hay una columna que contiene la información de a qué estado pertenece: estados =['CMX', 'OAX', 'PUE', 'PUE', 'CMX', 'PUE', 'OAX', 'OAX', 'OAX', 'CMX', 'CMX', 'PUE', 'OAX', 'CMX', 'VER', 'PUE', 'VER', 'CMX', 'PUE', 'CMX', 'OAX', 'CMX', 'PUE'].
La empresa siempre está abriendo nuevas sucursales, por lo que la tabla está constantemente recibiendo nuevos registros y al gerente le gustaría tener la información actualizada de la cantidad de sucursales en cada estado.
A partir de la columna con la información de los estados, crea un diccionario utilizando la comprensión de diccionarios (dict comprehension) con la clave siendo el nombre de un estado y el valor siendo la cantidad de veces que aparece el estado en la lista.
Consejo: Puedes hacer un paso intermedio para generar una lista de listas en la que cada una de las listas tenga el nombre de solo un estado con valores repetidos.
Solución recomendada del instructor:
# Almacenando los estados sin repetición de valor
estados_unicos = list(set(estados))
# Creando una lista de listas con valores repetidos de cada estado
lista_de_listas = []
for estado in estados_unicos:
lista = [e for e in estados if e == estado]
lista_de_listas.append(lista)
print(lista_de_listas)
# Creando un diccionario en el que la clave es el nombre de cada estado único y el valor es la cantidad de elementos
conteo_valores = {estados_unicos[i]: len(lista_de_listas[i]) for i in range(len(estados_unicos))}
print(conteo_valores)
Solución propuesta por mi: Se elimina el paso intermedio de creación de una lista con valores unicos y repetidos:
# Diccionario en donde se almacenará un estado dentro de la lista estados
# y como valor del diccionario el numero de ocurrencia dentro de la misma lista
# usando el metodo count()
informacion_actualizada = {estado: estados.count(estado) for estado in estados}
print(informacion_actualizada)