Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีหาค่าเฉลี่ยของค่าที่ไม่ใช่ศูนย์ใน Python Dictionary

คุณสามารถทำได้โดยการวนลูปผ่านดิกชันนารีและกรองค่าที่เป็นศูนย์ออกก่อน จากนั้นหาผลรวมของค่าที่กรองแล้ว สุดท้ายหารด้วยจำนวนค่าที่กรองแล้ว

ตัวอย่าง

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 และอ่านยากกว่าการใช้ list comprehension มาก