เมื่อต้องการรatakanested List โดยไม่ใช้ Recursion สามารถใช้ lambda function, เมธอด 'sum', 'map' และ 'isinstance' ได้
ลิสต์สามารถเก็บค่าที่หลากหลายได้
เมธอด 'isinstance' ตรวจสอบว่าพารามิเตอร์ที่กำหนดเป็นชนิดข้อมูลเฉพาะหรือไม่
Anonymous function คือฟังก์ชันที่กำหนดโดยไม่มีชื่อ โดยทั่วไปฟังก์ชันใน Python กำหนดด้วย 'def' แต่ anonymous function กำหนดด้วย 'lambda' รับ expression เดียว แต่รับ arguments ได้หลายตัว ใช้ expression และคืนค่าผลลัพธ์
ฟังก์ชัน map นำฟังก์ชัน/การดำเนินการที่กำหนดไปใช้กับทุก item ใน iterable (เช่น list, tuple) คืนค่าลิสต์เป็นผลลัพธ์
เมธอด 'sum' บวกค่าตัวเลขใน iterable
ตัวอย่าง
my_list = [[[11, [[32]], [[[53]]]], [[64], 75]], [[6, 89, 99]]]
flattened_list = lambda my_list: sum(map(flattened_list, my_list), []) if isinstance(my_list, list) else [my_list]
print("The original list is : ")
print(my_list)
print("The flattened list is :")
print(flattened_list(my_list))
ผลลัพธ์
The original list is : [[[11, [[32]], [[[53]]]], [[64], 75]], [[6, 89, 99]]] The flattened list is : [11, 32, 53, 64, 75, 6, 89, 99]
คำอธิบาย
- กำหนด nested list และแสดงบนคอนโซล
- รวมองค์ประกอบด้วย 'sum' และนำไปใช้กับทุกองค์ประกอบด้วย 'map'
- ผลลัพธ์ของการดำเนินการนี้กำหนดให้ตัวแปร
- แสดงเป็นเอาต์พุทบนคอนโซล