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

แปลงรายการที่ซ้อนกันเป็นรายการแบบเรียบใน Python


รายการที่ซ้อนกันคือรายการที่มีองค์ประกอบเป็นรายการเอง หากเรามีที่เก็บข้อมูลหลามซึ่งเป็นรายการที่ซ้อนกัน บางครั้งเราอาจจำเป็นต้องแปลงเป็นรายการแบบแบนเพื่อให้สามารถประมวลผลแต่ละองค์ประกอบเพิ่มเติมได้

แม้แต่องค์ประกอบภายในก็สามารถซ้อนกันได้ และสามารถทำรังได้หลายชั้น ดังนั้นเราจะแก้ไขปัญหานี้ด้วยการเรียกซ้ำ เราจะตรวจสอบต่อไปว่าองค์ประกอบนั้นซ้อนกันหรือไม่ จากนั้นจึงใช้ฟังก์ชันนี้ซ้ำแล้วซ้ำเล่าจนกว่าองค์ประกอบนั้นจะไม่อยู่ในรายการอีกต่อไป เมื่อพบว่าองค์ประกอบนั้นไม่ใช่รายการ เราจะผนวกเข้ากับรายการใหม่ซึ่งจะเก็บองค์ประกอบที่ไม่ซ้อนกันทั้งหมดของรายการ

ตัวอย่าง

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]