Python: frecuencias de valores en un diccionario

A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos extraer la frecuencia de los valores en el diccionario. Este es un problema bastante común y tiene aplicaciones en muchos dominios, incluido el desarrollo web y la programación diaria. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_dict = {‘ide’: 3, ‘Gfg’: 3, ‘code’: 2}
Salida : {3: 2, 2: 1}

Entrada : test_dict = {10: 1, 20: 2, 30: 1, 40: 2}
Salida : {1: 2, 2: 2}

Método #1: Usar el defaultdict()bucle +
La combinación de las funciones anteriores se puede usar para resolver este problema. En esto, usamos defaultdict() para inicializar el diccionario de contadores con números enteros e incrementar el contador en forma de fuerza bruta usando loop.

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

The original dictionary : {'Gfg': 3, 'code': 2, 'ide': 3}
The frequency dictionary : {2: 1, 3: 2}

Método #2: UsarCounter() + values()
La combinación de las funciones anteriores se puede usar para resolver este problema. En este, realizamos la tarea de extracción de valores usando valores() y contador de frecuencia usando Counter().

# Python3 code to demonstrate working of 
# Dictionary Values Frequency
# Using Counter() + values()
from collections import Counter
  
# initializing dictionary
test_dict = {'ide' : 3, 'Gfg' : 3, 'code' : 2}
  
# printing original dictionary
print("The original dictionary : " + str(test_dict))
  
# Dictionary Values Frequency
# Using defaultdict() + loop
res = Counter(test_dict.values())
      
# printing result 
print("The frequency dictionary : " + str(dict(res))) 
Producción:

The original dictionary : {'code': 2, 'Gfg': 3, 'ide': 3}
The frequency dictionary : {2: 1, 3: 2}

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 *