Python–频率分组字典
原文:https://www . geesforgeks . org/python-frequency-group-dictionary/
有时,在使用 Python 字典时,我们可能会遇到一个问题,即我们需要对字典数据进行分组,这种方式需要将所有相似的字典按其频率进行分组。这类问题在 web 开发领域有其应用。让我们讨论执行这项任务的某些方法。
输入 : test_list = [{'best': 2,' Gfg': 1},{'best': 2,' Gfg': 1}] 输出 : [{'freq': 2,' Gfg': 1}]
输入 : test_list = [{'Gfg': 1,' best': 2},{'Gfg': 2,' best': 1}] 输出 : [{'Gfg': 1,' freq': 1},{'Gfg': 2,' freq': 1}]
方法一:使用defaultdict()
+列表理解
以上功能的组合可以用来执行此任务。在这种情况下,我们用整数初始化 defaultdict 以获得频率,并使用列表理解来编译结果字典。
# 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))
Output :
原始列表为:[{'Gfg': 1,' best': 2},{'Gfg': 1,' best': 2},{'good': 3,' Gfg': 2},{'Gfg': 2 },{'good': 3,' Gfg': 2}] 频率字典:[{'Gfg': 1,' freq': 2},{ ' Gfg ':2,' freq': 3}]
版权属于:月萌API www.moonapi.com,转载请注明出处