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

ลบ Tuples แบบ Element-wise ใน Python

บทนำ

การลบ 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)