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