บทนำ
การลบ tuple ทีละ element (element-wise subtraction) เช่น (7,8) - (3,2) = (4,6) ทำได้ด้วย map() ร่วม lambda หรือ zip() กับ comprehension
ตัวอย่างโค้ด (map + lambda)
tuple1 = (7, 8, 11, 0, 3, 4)
tuple2 = (3, 2, 22, 45, 12, 9)
print("Tuple 1:", tuple1)
print("Tuple 2:", tuple2)
result = tuple(map(lambda x, y: x - y, tuple1, tuple2))
print("ผลลบ:", result)
ผลลัพธ์
Tuple 1: (7, 8, 11, 0, 3, 4) Tuple 2: (3, 2, 22, 45, 12, 9) ผลลบ: (4, 6, -11, -45, -9, -5)
คำอธิบาย
map(lambda x, y: x - y, tuple1, tuple2)ลบคู่ละคู่- หยุดที่ tuple ที่สั้นกว่า (เหมือน zip)
วิธีแนะนำ: zip + Generator Expression
result = tuple(x - y for x, y in zip(tuple1, tuple2)) print(result) # (4, 6, -11, -45, -9, -5)
อ่านง่ายกว่า ไม่ต้องใช้ lambda
การลบแบบมีเงื่อนไข
# ลบเฉพาะที่ผลลบไม่ติดลบ result = tuple(x - y for x, y in zip(tuple1, tuple2) if x >= y) print(result) # (4, 6)