如何在 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,但对于像这样的简单任务而言,这有点过分。而且,它相比使用列表解析的可读性也差得多。
广告