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

แปลง Tuple เป็นจำนวนเต็ม (Integer) ใน Python

บทนำ

การแปลง tuple ของตัวเลขหลายหลักให้กลายเป็นจำนวนเต็มเดียว สามารถทำได้โดยใช้ functools.reduce() ร่วมกับ lambda ฟังก์ชัน เพื่อรวมค่าแต่ละตัวใน tuple เข้าด้วยกัน

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

import functools

my_tuple = (23, 45, 12, 56, 78, 0)
print("Tuple เดิม:", my_tuple)

# ใช้ reduce และ lambda รวมค่า
# สูตร: sub * 10 + elem  (shift ซ้ายแล้วบวกค่าใหม่)
result = functools.reduce(lambda sub, elem: sub * 10 + elem, my_tuple)

print("หลังแปลงเป็น integer:", result)

ผลลัพธ์

Tuple เดิม: (23, 45, 12, 56, 78, 0)
หลังแปลงเป็น integer: 2768380

คำอธิบาย

  • functools.reduce() ใช้ฟังก์ชันสะสมค่าผ่านแต่ละ element ใน iterable
  • lambda sub, elem: sub * 10 + elem นำค่าสะสม (sub) คูณ 10 แล้วบวกค่าปัจจุบัน (elem)
  • ตัวอย่าง: เริ่ม 23 → 23*10+45=275 → 275*10+12=2762 → ... → 2768380
  • วิธีนี้สมมติว่าแต่ละ element ใน tuple เป็น "หลัก" ของตัวเลข (ไม่ใช่ตัวเลขหลายหลัก)

ข้อควรระวัง

หาก tuple มีค่า เช่น (12, 34) จะได้ 154 (12*10+34) ไม่ใช่ 1234 หากต้องการต่อสตริงควรใช้ int(''.join(map(str, tup)))