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

นับจำนวน Elements ก่อน Tuple แรกใน Nested Tuple ด้วย Python

บทนำ

การนับจำนวน element ใน tuple ก่อนเจอ tuple แรก (nested tuple) สามารถทำได้ด้วย enumerate() และ isinstance() ตรวจสอบชนิดข้อมูล

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

my_tuple = (7, 8, 11, 0, (3, 4, 3), (2, 22))
print("Tuple:", my_tuple)

count = 0
for idx, elem in enumerate(my_tuple):
    if isinstance(elem, tuple):
        break
    count += 1

print("จำนวน elements ก่อน tuple แรก:", count)

ผลลัพธ์

Tuple: (7, 8, 11, 0, (3, 4, 3), (2, 22))
จำนวน elements ก่อน tuple แรก: 4

คำอธิบาย

  • enumerate(my_tuple) ให้ (index, value) ทีละคู่
  • isinstance(elem, tuple) ตรวจสอบว่า element เป็น tuple หรือไม่
  • เจอ tuple แรก → break ออกจากลูป
  • นับจำนวนรอบที่ยังไม่เจอ tuple

รูปแบบสั้น (One-liner)

# ใช้ next() หา index แรกที่เป็น tuple
try:
    first_tuple_idx = next(i for i, x in enumerate(my_tuple) if isinstance(x, tuple))
except StopIteration:
    first_tuple_idx = len(my_tuple)  # ไม่มี tuple เลย

print("Index ของ tuple แรก:", first_tuple_idx)
print("จำนวน elements ก่อนหน้า:", first_tuple_idx)

การประยุกต์: หาตำแหน่ง list แรก แทน tuple

first_list_idx = next((i for i, x in enumerate(my_tuple) if isinstance(x, list)), -1)