您可以通过迭代字典并首先过滤掉零值来做到这一点。然后取过滤值的总和。最后,除以这些过滤值的个数。示例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,但对于像这样的简单任务来说,这是一种过度杀伤。而且它也比使用列表推导式更难读。