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