เมื่อจำเป็นต้องทำให้ 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 หรือไม่
-
หากเป็นเช่นนั้น ระบบจะส่งคืนเป็นเอาต์พุต
-
นอกจากนี้ยังมีการกำหนดรายการที่ว่างเปล่า
-
ทูเพิลถูกทำซ้ำอีกครั้ง และองค์ประกอบจากทูเพิลแบบแบนจะถูกเพิ่มลงในรายการนี้
-
ส่งคืนเป็นผลลัพธ์สุดท้าย
-
ทูเพิลของทูเพิลถูกกำหนดไว้นอกเมธอดและแสดงบนคอนโซล
-
วิธีการนี้ถูกเรียกโดยการส่งผ่านทูเพิลของทูเพิลนี้เป็นพารามิเตอร์
-
เอาต์พุตจะแสดงบนคอนโซล