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

หาความต่างสูงสุดระหว่างคู่ Tuple ใน Python

บทนำ

การหาความต่างสูงสุด (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 จากแต่ละ tuple
  • max(differences) หาค่ามากที่สุดในลิสต์ความต่าง

รูปแบบสั้น (One-liner)

max_diff = max(abs(b - a) for a, b in pairs)
print(max_diff)  # 89

ใช้ generator expression โดยตรงใน max() โดยไม่ต้องสร้างลิสต์กลาง