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

Pairwise Addition ใน Tuple ด้วย Python

Pairwise Addition ใน Tuple

เมื่อต้องการบวก Element ที่อยู่ติดกันใน Tuple (Pairwise Addition) สามารถใช้ zip(), tuple() และ Generator Expression ได้

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

my_tuple = (67, 45, 34, 56, 99, 123, 0, 56)
print("The tuple is : ")
print(my_tuple)

# zip กับ tuple เดียวกันแต่ข้ามตัวแรก
my_result = tuple(i + j for i, j in zip(my_tuple, my_tuple[1:]))

print("The tuple after addition is : ")
print(my_result)

ผลลัพธ์

The tuple is : (67, 45, 34, 56, 99, 123, 0, 56)
The tuple after addition is : (112, 79, 90, 155, 222, 123, 56)

คำอธิบาย

  • สร้าง Tuple และแสดงผล
  • zip(my_tuple, my_tuple[1:]) จับคู่ Element ติดกัน: (67,45), (45,34), (34,56), ...
  • Generator Expression บวกค่าคู่กัน (i + j)
  • แปลงเป็น Tuple ด้วย tuple()
  • เก็บผลลัพธ์และแสดง

การคำนวณแบบละเอียด

PairElement 1Element 2Sum
(67, 45)6745112
(45, 34)453479
(34, 56)345690
(56, 99)5699155
(99, 123)99123222
(123, 0)1230123
(0, 56)05656

Operation อื่นๆ แบบ Pairwise

t = (67, 45, 34, 56, 99, 123, 0, 56)

# ลบ (Difference)
diff = tuple(j - i for i, j in zip(t, t[1:]))
print("Difference:", diff)  # (-22, -11, 22, 43, 24, -123, 56)

# คูณ
prod = tuple(i * j for i, j in zip(t, t[1:]))
print("Product:", prod)  # (3015, 1530, 1904, 5544, 12177, 0, 0)

# หาร (Floor)
div = tuple(j // i for i, j in zip(t, t[1:]) if i != 0)
print("Division:", div)  # (0, 0, 1, 1, 1, 0) - skip division by zero

ใช้ itertools.pairwise (Python 3.10+)

from itertools import pairwise

my_result = tuple(a + b for a, b in pairwise(my_tuple))
print(my_result)  # (112, 79, 90, 155, 222, 123, 56)

# pairwise ใส่ใจง่ายกว่า zip(t, t[1:])