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

时间:2017-09-01 20:38:54

标签: python python-3.x dictionary iterator iteration

这可能是重复的,如果我找不到,请告诉我。

我的问题在标题中。

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

def find_sorted_avg(dict_list, key):
    total = 0

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

    return total / len(dict_list)

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

1 个答案:

答案 0 :(得分:5)

您希望在词典列表中对sum的所有值求和。

您可以将生成器理解提供给total = sum(item.get(key,0) for item in dict_list) / len(dict_list) ,并按行列表的长度除以一行:

get(key,0)

item.get(key,0)确保如果一个字典中没有密钥,它仍然有效(当密钥不在字典中时会发出0)

(当然,如果你想让它大声崩溃而是用item[key]替换class Bar { public: Bar() { const Data& data = ComplexFunction(); // How initialize foo ? } private: Foo foo; //other member variables };