如何在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,但是对于像这样的简单任务,这是一个过大的选择。而且它比使用列表理解的可读性低得多。