Python: valora las frecuencias de la clave.

A veces, al trabajar con listas de diccionarios de Python, uno puede tener un problema en el que necesitamos encontrar la frecuencia de todos los valores que ocurren en una clave específica en la lista de diccionarios. Esto puede tener aplicación en muchos dominios, incluido el desarrollo web. Analicemos ciertas formas en que se puede realizar esta tarea.

Entrada : test_list = [{‘gfg’: [1]}, {‘bueno’: [5, 78, 10], ‘gfg’: [5, 6, 7, 8]}]
Salida : {8: 1, 1: 1, 5: 1, 6: 1, 7: 1}

Entrada : test_list = [{‘gfg’: [1, 5, 6, 7]}]
Salida : {1: 1, 5: 1, 6: 1, 7: 1}

Método #1: Uso Counter()de la comprensión de lista +
La combinación de las funcionalidades anteriores se utiliza para resolver este problema. En esto, realizamos la tarea de encontrar la frecuencia usando Counter() y el cálculo se realiza usando la comprensión de listas.

# Python3 code to demonstrate working of 
# Values frequencies of key
# Using Counter() + list comprehension
from collections import Counter
  
# initializing list
test_list = [{'gfg' : [1, 5, 6, 7], 'is' : [9, 6, 2, 10]},
             {'gfg' : [5, 6, 7, 8], 'good' : [5, 7, 10]},
             {'gfg' : [7, 5], 'best' : [5, 7]}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# frequency key 
freq_key = "gfg"
  
# Values frequencies of key
# Using Counter() + list comprehension
res = Counter([idx for val in test_list for idx in val[freq_key]])
  
# printing result 
print("The frequency dictionary : " + str(dict(res))) 
Producción :

La lista original es: [{‘gfg’: [1, 5, 6, 7], ‘is’: [9, 6, 2, 10]}, {‘gfg’: [5, 6, 7, 8] , ‘bueno’: [5, 7, 10]}, {‘gfg’: [7, 5], ‘mejor’: [5, 7]}]

El diccionario de frecuencias: {8: 1, 1: 1, 5: 3, 6: 2, 7: 3}

Método #2: Usarchain.from_iterables() + Counter()
La combinación de los métodos anteriores se puede usar para resolver este problema. En esto, realizamos la tarea de iteración y enlace usando chain.from_iterables().

# Python3 code to demonstrate working of 
# Values frequencies of key
# Using chain.from_iterables() + Counter()
from collections import Counter
import itertools
  
# initializing list
test_list = [{'gfg' : [1, 5, 6, 7], 'is' : [9, 6, 2, 10]},
             {'gfg' : [5, 6, 7, 8], 'good' : [5, 7, 10]},
             {'gfg' : [7, 5], 'best' : [5, 7]}]
  
# printing original list
print("The original list is : " + str(test_list))
  
# frequency key 
freq_key = "gfg"
  
# Values frequencies of key
# Using chain.from_iterables() + Counter()
res = Counter(itertools.chain.from_iterable([sub[freq_key] for sub in test_list]))
  
# printing result 
print("The frequency dictionary : " + str(dict(res))) 
Producción :

La lista original es: [{‘gfg’: [1, 5, 6, 7], ‘is’: [9, 6, 2, 10]}, {‘gfg’: [5, 6, 7, 8] , ‘bueno’: [5, 7, 10]}, {‘gfg’: [7, 5], ‘mejor’: [5, 7]}]

El diccionario de frecuencias: {8: 1, 1: 1, 5: 3, 6: 2, 7: 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 *