Dada una Lista de diccionarios, para una clave en particular, encuentre el número de ocurrencias para cada valor de esa clave.
Entrada : test_list = [{‘gfg’: 3, ‘mejor’: 4}, {‘gfg’: 3, ‘mejor’: 5},
{‘gfg’: 4, ‘mejor’: 4}, {‘gfg ‘: 7, ‘mejor’: 4}], K = ‘gfg’
Salida : [{3: 2}, {4: 1}, {7: 1}]
Explicación : gfg tiene 2 ocurrencias de 3 como valores.Entrada : test_list = [{‘gfg’: 3, ‘mejor’: 4}, {‘gfg’: 3, ‘mejor’: 5},
{‘gfg’: 4, ‘mejor’: 4}, {‘gfg ‘: 7, ‘mejor’: 4}], K = ‘mejor’
Salida : [{4: 3}, {5: 1}]
Explicación : mejor tiene 3 ocurrencias de 4 como valores.
Método #1: Usar groupby() + comprensión de diccionario
En esto, realizamos la agrupación de valores de clave usando groupby() y la frecuencia de valores se ensambla y extrae usando comprensión de diccionario y len() .
Python3
# Python3 code to demonstrate working of # Values Frequency grouping of K in dictionaries # Using groupby() + dictionary comprehension from itertools import groupby # initializing list test_list = [{'gfg' : 3, 'best' : 4}, {'gfg' : 3, 'best' : 5}, {'gfg' : 4, 'best' : 4}, {'gfg' : 7, 'best' : 4} ] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 'gfg' # groupby() used to group values and len() to compute Frequency res = [{key: len(list(val))} for key, val in groupby(test_list, lambda sub: sub[K])] # printing result print("The Values Frequency : " + str(res))
Producción:
La lista original es: [{‘gfg’: 3, ‘mejor’: 4}, {‘gfg’: 3, ‘mejor’: 5}, {‘gfg’: 4, ‘mejor’: 4}, {‘ gfg’: 7, ‘best’: 4}] Frecuencia de los valores: [{3: 2}, {4: 1}, {7: 1}]
Método #2: Usando Counter()
En esto, la tarea de realizar la verificación de frecuencia se realiza utilizando Counter(). Devuelve el resultado en un solo diccionario.
Python3
# Python3 code to demonstrate working of # Values Frequency grouping of K in dictionaries # Using Counter() from collections import Counter # initializing list test_list = [{'gfg' : 3, 'best' : 4}, {'gfg' : 3, 'best' : 5}, {'gfg' : 4, 'best' : 4}, {'gfg' : 7, 'best' : 4} ] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 'gfg' # groupby() used to group values and len() to compute Frequency res = dict(Counter(sub[K] for sub in test_list)) # printing result print("The Values Frequency : " + str(res))
Producción:
La lista original es: [{‘gfg’: 3, ‘mejor’: 4}, {‘gfg’: 3, ‘mejor’: 5}, {‘gfg’: 4, ‘mejor’: 4}, {‘ gfg’: 7, ‘best’: 4}] Frecuencia de los valores: [{3: 2}, {4: 1}, {7: 1}]
Método #3: Usar los métodos keys(), list(), set() y count()
Python3
# Python3 code to demonstrate working of # Values Frequency grouping of K in dictionaries # initializing list test_list = [{'gfg' : 3, 'best' : 4}, {'gfg' : 3, 'best' : 5}, {'gfg' : 4, 'best' : 4}, {'gfg' : 7, 'best' : 4} ] # printing original list print("The original list is : " + str(test_list)) # initializing K K = 'gfg' x=[] for i in test_list: if K in i.keys(): x.append(i[K]) p=list(set(x)) nl=[] for i in p: d={} d[i]=x.count(i) nl.append(d) # printing result print("The Values Frequency : " + str(nl))
The original list is : [{'gfg': 3, 'best': 4}, {'gfg': 3, 'best': 5}, {'gfg': 4, 'best': 4}, {'gfg': 7, 'best': 4}] The Values Frequency : [{3: 2}, {4: 1}, {7: 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