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

โปรแกรม Python รatakanested List ไม่ใช้ Recursion


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