บทนำ
การหาความต่างสูงสุด (maximum absolute difference) ระหว่างสองค่าในแต่ละ tuple ภายในลิสต์ สามารถทำได้ด้วย list comprehension คำนวณค่าสัมบูรณ์ แล้วหาค่าสูงสุดด้วย max()
ตัวอย่างโค้ด
pairs = [(11, 14), (0, 78), (33, 67), (89, 0)]
print("ลิสต์คู่:", pairs)
# คำนวณความต่างสัมบูรณ์ของแต่ละคู่
differences = [abs(b - a) for a, b in pairs]
print("ความต่างแต่ละคู่:", differences)
# หาค่าสูงสุด
max_diff = max(differences)
print("ความต่างสูงสุด:", max_diff)
ผลลัพธ์
ลิสต์คู่: [(11, 14), (0, 78), (33, 67), (89, 0)] ความต่างแต่ละคู่: [3, 78, 34, 89] ความต่างสูงสุด: 89
คำอธิบาย
abs(b - a)ความต่างสัมบูรณ์ระหว่างสองค่าใน tuple[abs(b - a) for a, b in pairs]list comprehension แยก a, b จากแต่ละ tuplemax(differences)หาค่ามากที่สุดในลิสต์ความต่าง
รูปแบบสั้น (One-liner)
max_diff = max(abs(b - a) for a, b in pairs) print(max_diff) # 89
ใช้ generator expression โดยตรงใน max() โดยไม่ต้องสร้างลิสต์กลาง