返回字典列表中特定键的平均值/平均值

返回字典列表中特定键的平均值/平均值

问题描述:

这可能是重复的,所以如果我没有找到任何东西,请让我知道。返回字典列表中特定键的平均值/平均值

我的问题是在标题中。

我知道下面的代码会这样做,但我不认为这是应该如何完成的。这可以压缩到一个干净的功能,做同样的事情?内建函数怎么样?

def find_sorted_avg(dict_list, key): 
    total = 0 

    for item in dict_list: 
     total += item[key] 

    return total/len(dict_list) 

如果您知道更好的方法,请告诉我。

+1

你能提供dict_list'的'一个例子,和你” d期望输出是?如果此代码正常工作,您可能需要查看[代码评论](https://codereview.stackexchange.com/)。 –

+0

应该更好:'total = sum(dict_list中item的[key]]/len(dict_list)' –

+1

您是指'total + = item [key]' – jacoblaw

要总结你的类型的字典列表中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)