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)))
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)))
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