返回字典列表中特定键的平均值/平均值
问题描述:
这可能是重复的,所以如果我没有找到任何东西,请让我知道。返回字典列表中特定键的平均值/平均值
我的问题是在标题中。
我知道下面的代码会这样做,但我不认为这是应该如何完成的。这可以压缩到一个干净的功能,做同样的事情?内建函数怎么样?
def find_sorted_avg(dict_list, key):
total = 0
for item in dict_list:
total += item[key]
return total/len(dict_list)
如果您知道更好的方法,请告诉我。
答
要总结你的类型的字典列表中key
的所有值。
您可以通过列表的长度喂发电机修真sum
,和鸿沟,在一条线:
total = sum(item.get(key,0) for item in dict_list)/len(dict_list)
get(key,0)
确保,如果关键是缺席一个快译通,它仍然可以工作( 0时发出关键不在字典)
(当然,如果你想这个崩溃大声改为由item[key]
更换item.get(key,0)
)
+0
好的,这已经超过了OP的要求。我编辑了我的帖子('占'可能是坏的措辞) –
答
这是假设,关键是在每个dict_list字典:
reduce(lambda _sum, _dict: _sum + _dict[key], dict_list, 0)/len(dict_list)
你能提供dict_list'的'一个例子,和你” d期望输出是?如果此代码正常工作,您可能需要查看[代码评论](https://codereview.stackexchange.com/)。 –
应该更好:'total = sum(dict_list中item的[key]]/len(dict_list)' –
您是指'total + = item [key]' – jacoblaw