如何在 Python 字典中查找非零值的平均值?


可以通过先迭代字典并过滤出零值来实现此操作。然后使用过滤后的值求和。最后,除以这些过滤后值的个数。 

示例

my_dict = {"foo": 100, "bar": 0, "baz": 200}
filtered_vals = [v for _, v in my_dict.items() if v != 0]
average = sum(filtered_vals) / len(filtered_vals)
print(average)

输出

这会产生以下输出 −

150.0

还可以使用 reduce,但对于像这样的简单任务而言,这有点过分。而且,它相比使用列表解析的可读性也差得多。

更新于: 05-Mar-2020

2K+ 浏览量

开启你的职业生涯

完成课程获得认证

立即开始
广告