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

แผ่ tuple ของ List เป็น tuple ใน Python


เมื่อจำเป็นต้องทำให้ tuple ของรายการเป็น tuple จะมีการกำหนดเมธอดที่รับอินพุตเป็น tuple

ทูเพิลถูกทำซ้ำ และมีการเรียกใช้เมธอดเดียวกันซ้ำแล้วซ้ำเล่าจนกว่าจะได้ผลลัพธ์

ด้านล่างนี้เป็นการสาธิตสิ่งเดียวกัน -

ตัวอย่าง

def flatten_tuple(my_tuple):

   if isinstance(my_tuple, tuple) and len(my_tuple) == 2 and not isinstance(my_tuple[0], tuple):
      my_result = [my_tuple]
      return tuple(my_result)

   my_result = []
   for sub in my_tuple:
      my_result += flatten_tuple(sub)
   return tuple(my_result)

my_tuple = ((35, 46), ((67, 70), (8, 11), (10, 111)), (((21, 12), (3, 4))))

print("The tuple is : " )
print(my_tuple)

my_result = flatten_tuple(my_tuple)

print("The flattened tuple is : ")
print(my_result)

ผลลัพธ์

The tuple is :
((35, 46), ((67, 70), (8, 11), (10, 111)), ((21, 12), (3, 4)))
The flattened tuple is :
((35, 46), (67, 70), (8, 11), (10, 111), (21, 12), (3, 4))

คำอธิบาย

  • มีการกำหนดเมธอดชื่อ 'flatten_tuple' ซึ่งรับ tuple เป็นพารามิเตอร์

  • จะตรวจสอบว่า tuple เป็น tuple จริงหรือไม่ และความยาวของ tuple เท่ากับ 2 หรือไม่

  • หากเป็นเช่นนั้น ระบบจะส่งคืนเป็นเอาต์พุต

  • นอกจากนี้ยังมีการกำหนดรายการที่ว่างเปล่า

  • ทูเพิลถูกทำซ้ำอีกครั้ง และองค์ประกอบจากทูเพิลแบบแบนจะถูกเพิ่มลงในรายการนี้

  • ส่งคืนเป็นผลลัพธ์สุดท้าย

  • ทูเพิลของทูเพิลถูกกำหนดไว้นอกเมธอดและแสดงบนคอนโซล

  • วิธีการนี้ถูกเรียกโดยการส่งผ่านทูเพิลของทูเพิลนี้เป็นพารามิเตอร์

  • เอาต์พุตจะแสดงบนคอนโซล