Python – Frecuencia de valores de lista de diccionario

A veces, mientras trabajamos con los diccionarios de Python, podemos tener un problema en el que necesitamos realizar la tarea de calcular la frecuencia de todos los valores en las listas de valores del diccionario. Este es un problema bastante común y puede tener casos de uso en muchos dominios. Analicemos ciertas formas en que se puede realizar esta tarea.
 

Entrada : test_dict = {1: [‘gfg’, ‘CS’, ‘genial’], 2: [‘gfg’, ‘CS’]} 
Salida : {‘gfg’: 2, ‘CS’: 2, ‘genial ‘: 1}
Entrada : test_dict = {1: [‘gfg’, ‘CS’]} 
Salida : {‘gfg’: 1, ‘CS’: 1} 
 

Método #1: Uso de defaultdict() + loop 
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, usamos defaultdict() para inicializar el contador para cada valor y la fuerza bruta se usa para incrementar el contador en las listas de diccionarios.
 

Python3

# Python3 code to demonstrate working of
# Dictionary List Values Frequency
# Using loop + defaultdict()
from collections import defaultdict
 
# initializing dictionary
test_dict = {1 : ['gfg', 'best', 'geeks'],
             2 : ['gfg', 'CS'],
             3 : ['best', 'for', 'CS'],
             4 : ['test', 'ide', 'success'],
             5 : ['gfg', 'is', 'best']}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# Dictionary List Values Frequency
# Using loop + defaultdict()
res = defaultdict(int)
for key, val in test_dict.items():
    for sub in val:
        res[sub] += 1
     
# printing result
print("Values Frequency : " + str(dict(res)))
Producción : 

El diccionario original: {1: [‘gfg’, ‘best’, ‘geeks’], 2: [‘gfg’, ‘CS’], 3: [‘best’, ‘for’, ‘CS’], 4 : [‘test’, ‘ide’, ‘success’], 5: [‘gfg’, ‘is’, ‘best’]} 
Valores Frecuencia : {‘gfg’: 3, ‘best’: 3, ‘geeks’ : 1, ‘CS’: 2, ‘para’: 1, ‘prueba’: 1, ‘ide’: 1, ‘éxito’: 1, ‘es’: 1} 

 

 
Método #2: Usar chain.from_iterables() + Counter() 
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de contar usando Counter() y el aplanamiento/extracción de valores se realiza usando from_iterables().
 

Python3

# Python3 code to demonstrate working of
# Dictionary List Values Frequency
# Using chain.from_iterables() + Counter()
from collections import Counter
from itertools import chain
 
# initializing dictionary
test_dict = {1 : ['gfg', 'best', 'geeks'],
             2 : ['gfg', 'CS'],
             3 : ['best', 'for', 'CS'],
             4 : ['test', 'ide', 'success'],
             5 : ['gfg', 'is', 'best']}
 
# printing original dictionary
print("The original dictionary : " + str(test_dict))
 
# Dictionary List Values Frequency
# Using chain.from_iterables() + Counter()
res = Counter(chain.from_iterable(test_dict.values()))
     
# printing result
print("Values Frequency : " + str(dict(res)))
Producción : 

El diccionario original: {1: [‘gfg’, ‘best’, ‘geeks’], 2: [‘gfg’, ‘CS’], 3: [‘best’, ‘for’, ‘CS’], 4 : [‘test’, ‘ide’, ‘success’], 5: [‘gfg’, ‘is’, ‘best’]} 
Valores Frecuencia : {‘gfg’: 3, ‘best’: 3, ‘geeks’ : 1, ‘CS’: 2, ‘para’: 1, ‘prueba’: 1, ‘ide’: 1, ‘éxito’: 1, ‘es’: 1} 

 

Publicación traducida automáticamente

Artículo escrito por manjeet_04 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *