รายการที่ซ้อนกันคือรายการที่มีองค์ประกอบเป็นรายการเอง หากเรามีที่เก็บข้อมูลหลามซึ่งเป็นรายการที่ซ้อนกัน บางครั้งเราอาจจำเป็นต้องแปลงเป็นรายการแบบแบนเพื่อให้สามารถประมวลผลแต่ละองค์ประกอบเพิ่มเติมได้
แม้แต่องค์ประกอบภายในก็สามารถซ้อนกันได้ และสามารถทำรังได้หลายชั้น ดังนั้นเราจะแก้ไขปัญหานี้ด้วยการเรียกซ้ำ เราจะตรวจสอบต่อไปว่าองค์ประกอบนั้นซ้อนกันหรือไม่ จากนั้นจึงใช้ฟังก์ชันนี้ซ้ำแล้วซ้ำเล่าจนกว่าองค์ประกอบนั้นจะไม่อยู่ในรายการอีกต่อไป เมื่อพบว่าองค์ประกอบนั้นไม่ใช่รายการ เราจะผนวกเข้ากับรายการใหม่ซึ่งจะเก็บองค์ประกอบที่ไม่ซ้อนกันทั้งหมดของรายการ
ตัวอย่าง
listA = [[43, [0]],12, 19, [13,[8, 8]], 21 ] print('Given nested list: \n', listA) # Flat List res = [] # function def flatlist(l): for x in l: if type(x) == list: flatlist(x) else: res.append(x) flatlist(listA) print('Flattened List created: \n', res)
ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
Given nested list: [[43, [0]], 12, 19, [13, [8, 8]], 21] Flattened List created: [43, 0, 12, 19, 13, 8, 8, 21]