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

Python - จำกัดช่วงค่า (Min/Max) ของแต่ละ Key ใน Dictionary List

จาก List ของ Dictionary ที่มี Key เหมือนกัน หา Min และ Max ของแต่ละ Key ทั่วทุก Dictionary

ตัวอย่างโค้ด

my_list = [{"python": 4, "is": 7, "best": 10},
           {"python": 2, "is": 5, "best": 9},
           {"python": 1, "is": 2, "best": 6}]

print("The list is :")
print(my_list)

my_result = dict()
keys = list(my_list[0].keys())

for my_elem in keys:
    my_result[my_elem] = [min(sub[my_elem] for sub in my_list),
                          max(sub[my_elem] for sub in my_list)]

print("The result is :")
print(my_result)

ผลลัพธ์

The list is : [{'python': 4, 'is': 7, 'best': 10}, {'python': 2, 'is': 5, 'best': 9}, {'python': 1, 'is': 2, 'best': 6}]
The result is : {'python': [1, 4], 'is': [2, 7], 'best': [6, 10]}

คำอธิบาย

  • ดึง Keys จาก Dict แรก (สมมติทุก Dict มี Key เหมือนกัน)
  • วนลูปแต่ละ Key
  • Generator Expression: sub[my_elem] for sub in my_list ดึงค่าของ Key นั้นจากทุก Dict
  • min() และ max() หาค่าต่ำสุด/สูงสุด
  • เก็บเป็น List [min, max] ใน Dict ผลลัพธ์