Python–字典键的累积平均值
给定字典列表,我们的任务是编写一个 Python 程序来提取所有键的平均值。
输入: test_list = [{'gfg' : 34,' is' : 8,' best' : 10},
{'gfg' : 1,' for' : 10,' geeks' : 9,' and' : 5,' best' : 12},
{“极客”:8,“find”:3,“gfg”:3,“best”:8 }]
输出: {'gfg': 12.666666666666,' is': 8,' best': 10,' for': 10,' geeks': 8.5,' and': 5,' find': 3}
解释: best 有 3 个值,10,8 和 12,它们的平均值计算为 10,结果如此。
输入: test_list = [{'gfg' : 34,' is' : 8,' best' : 10},
{“gfg”:1,“for”:10,“and”:5,“best”:12 },
{“find”:3,“gfg”:3,“best”:8 }]
输出: {'gfg': 12.66666666666,' is': 8,' best': 10,' for': 10,' and': 5,' find': 3}
解释: best 有 3 个值,10,8 和 12,它们的平均值计算为 10,结果如此。
在这种情况下,为了提取每个列表,使用循环,并使用字典对所有值进行求和和存储。平均值随后通过除以每个键的出现次数来提取。
Python 3
# Python3 code to demonstrate working of
# Cumulative Keys Mean in Dictionary List
# Using loop + mean()
from statistics import mean
# initializing list
test_list = [{'gfg' : 34, 'is' : 8, 'best' : 10},
{'gfg' : 1, 'for' : 10, 'geeks' : 9, 'and' : 5, 'best' : 12},
{'geeks' : 8, 'find' : 3, 'gfg' : 3, 'best' : 8}]
# printing original list
print("The original list is : " + str(test_list))
res = dict()
for sub in test_list:
for key, val in sub.items():
if key in res:
# combining each key to all values in
# all dictionaries
res[key].append(val)
else:
res[key] = [val]
for key, num_l in res.items():
res[key] = mean(num_l)
# printing result
print("The Extracted average : " + str(res))
输出:
原始列表为:[{'gfg': 34,' is': 8,' best': 10},{'gfg': 1,' for': 10,' geeks': 9,' and': 5,' best': 12},{'geeks': 8,' find': 3,' gfg': 3,' best': 8}]
提取的平均值:{'gfg': 12.66666666666666,' is': 8,' best': 10,' for': 10,' geeks': 8.5 '和':5,' find': 3}
方法 2:使用default dict()+mean()
在这种情况下,记忆任务是使用 defaultdict()完成的。这减少了一个条件检查,并使代码更加简洁。
Python 3
# Python3 code to demonstrate working of
# Cumulative Keys Mean in Dictionary List
# Using defaultdict() + mean()
from statistics import mean
from collections import defaultdict
# initializing list
test_list = [{'gfg' : 34, 'is' : 8, 'best' : 10},
{'gfg' : 1, 'for' : 10, 'geeks' : 9, 'and' : 5, 'best' : 12},
{'geeks' : 8, 'find' : 3, 'gfg' : 3, 'best' : 8}]
# printing original list
print("The original list is : " + str(test_list))
# defaultdict reduces step to memoize.
res = defaultdict(list)
for sub in test_list:
for key, val in sub.items():
res[key].append(val)
res = dict(res)
for key, num_l in res.items():
# computing mean
res[key] = mean(num_l)
# printing result
print("The Extracted average : " + str(res))
输出:
原始列表为:[{'gfg': 34,' is': 8,' best': 10},{'gfg': 1,' for': 10,' geeks': 9,' and': 5,' best': 12},{'geeks': 8,' find': 3,' gfg': 3,' best': 8}]
提取的平均值:{'gfg': 12.66666666666666,' is': 8,' best': 10,' for': 10,' geeks': 8.5 '和':5,' find': 3}
版权属于:月萌API www.moonapi.com,转载请注明出处