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

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