Python – Diccionario de agrupación de frecuencias

A veces, mientras trabajamos con diccionarios de Python, podemos tener un problema en el que necesitamos realizar la agrupación de datos del diccionario, de manera que necesitamos agrupar todas las claves de diccionarios similares con su frecuencia. Este tipo de problema tiene su aplicación en el dominio del desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_list = [{‘mejor’: 2, ‘Gfg’: 1}, {‘mejor’: 2, ‘Gfg’: 1}]
Salida : [{‘freq’: 2, ‘Gfg’: 1}]

Entrada : lista_prueba = [{‘Gfg’: 1, ‘mejor’: 2}, {‘Gfg’: 2, ‘mejor’: 1}]
Salida : [{‘Gfg’: 1, ‘frecuencia’: 1}, {‘Gfg’: 2, ‘frecuencia’: 1}]

Método #1: Uso defaultdict()de la comprensión de lista +
La combinación de las funciones anteriores se puede utilizar para realizar esta tarea. En esto, inicializamos el dictamen predeterminado con un número entero para obtener la frecuencia y la comprensión de la lista se usa para compilar el diccionario resultante.

# Python3 code to demonstrate working of 
# Frequency Grouping Dictionary
# Using defaultdict() + list comprehension
from collections import defaultdict
  
# initializing list
test_list = [{'Gfg' :  1, 'best' : 2}, 
             {'Gfg' :  1, 'best' : 2},
             {'Gfg' :  2, 'good' : 3},
             {'Gfg' :  2, 'best' : 2},
             {'Gfg' :  2, 'good' : 3}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# Frequency Grouping Dictionary
# Using defaultdict() + list comprehension
temp = defaultdict(int)
for sub in test_list:
    key = sub['Gfg']
    temp[key] += 1
  
res = [{"Gfg": key, "freq": val} for (key, val) in temp.items()]
  
# printing result 
print("The frequency dictionary : " + str(res)) 
Producción :

La lista original es: [{‘Gfg’: 1, ‘best’: 2}, {‘Gfg’: 1, ‘best’: 2}, {‘good’: 3, ‘Gfg’: 2}, {‘ Gfg’: 2, ‘best’: 2}, {‘good’: 3, ‘Gfg’: 2}]
El diccionario de frecuencias: [{‘Gfg’: 1, ‘freq’: 2}, {‘Gfg’: 2, ‘frecuencia’: 3}]

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 *