คุณสามารถทำได้โดยวนซ้ำในพจนานุกรมและกรองค่าศูนย์ออกก่อน จากนั้นนำผลรวมของค่าที่กรองออกมา สุดท้าย หารด้วยจำนวนค่าที่กรองเหล่านี้
ตัวอย่าง
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 ได้ แต่สำหรับงานง่าย ๆ เช่นนี้ มันเป็นการ overkill และยังอ่านง่ายกว่าการใช้การทำความเข้าใจรายการอีกด้วย