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

หาผลรวมของ Elements ใน List of Tuples ด้วย Python

บทนำ

การหาผลรวมของตัวเลขทั้งหมดในลิสต์ของ tuples สามารถทำได้โดยใช้ map(sum, ...) หาผลรวมแต่ละ tuple ก่อน แล้ว sum() อีกครั้งเพื่อรวมทั้งหมด

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

my_list = [(11, 14), (54, 56), (98, 0), (13, 76)]
print("ลิสต์:", my_list)

# วิธี 1: map + sum
total = sum(map(sum, my_list))
print("ผลรวมทั้งหมด:", total)

# วิธี 2: generator expression (อ่านง่ายกว่า)
total2 = sum(sum(t) for t in my_list)
print("ผลรวม (gen expr):", total2)

# วิธี 3: flatten แล้ว sum (ถ้าต้องการลิสต์รวม)
flat = [x for t in my_list for x in t]
total3 = sum(flat)
print("Flatten แล้ว sum:", total3, flat)

ผลลัพธ์

ลิสต์: [(11, 14), (54, 56), (98, 0), (13, 76)]
ผลรวมทั้งหมด: 322
ผลรวม (gen expr): 322
Flatten แล้ว sum: 322 [11, 14, 54, 56, 98, 0, 13, 76]

คำอธิบาย

  • map(sum, my_list) ใช้ sum กับแต่ละ tuple → ได้ iterator ของผลรวมแต่ละ tuple
  • sum(...) รวมผลรวมทั้งหมด
  • Generator expression sum(sum(t) for t in my_list) ทำสิ่งเดียวกันแต่อ่านง่ายกว่า

ขยาย: หาค่าเฉลี่ย, min, max

all_values = [x for t in my_list for x in t]
print("ค่าเฉลี่ย:", sum(all_values) / len(all_values))
print("ค่าต่ำสุด:", min(all_values))
print("ค่าสูงสุด:", max(all_values))