这可能是重复的,如果我找不到,请告诉我。
我的问题在标题中。
我知道以下代码会这样做,但我不认为这是应该如何完成的。这可以压缩到一个更干净的功能,做同样的事情吗?内置函数怎么样?
def find_sorted_avg(dict_list, key):
total = 0
for item in dict_list:
total += item[key]
return total / len(dict_list)
如果您知道更好的方法,请告诉我。
答案 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
};
)