เมื่อต้องการหาผลรวมของ nested list โดยใช้ Recursion ใช้เมธอดที่ผู้ใช้กำหนด รับลิสต์เป็นพารามิเตอร์
Recursion คำนวณผลลัพธ์ของส่วนเล็กๆ ของปัญหาใหญ่ และรวมส่วนเหล่านี้เพื่อให้คำตอบของปัญหาใหญ่
ลิสต์สามารถเก็บค่าที่หลากหลายได้
ตัวอย่าง
def recursion_sum(my_list):
my_total = 0
for elem in my_list:
if type(elem) == type([]):
my_total = my_total + recursion_sum(elem)
else:
my_total = my_total + elem
return my_total
my_list = [[2, 3], [7, 9], [11, 45], [78, 98]]
print("The list elements are :")
print(my_list)
print("The sum is :")
print(recursion_sum(my_list))
ผลลัพธ์
The list elements are : [[2, 3], [7, 9], [11, 45], [78, 98]] The sum is : 253
คำอธิบาย
- กำหนดเมธอด 'recursion_sum' รับลิสต์เป็นพารามิเตอร์
- เริ่มต้นตัวแปร = 0
- วนลูปองค์ประกอบในลิสต์ หากชนิดข้อมูลตรงกับลิสต์ ให้บวกองค์ประกอบในลิสต์และเรียกเมธอดซ้ำ
- มิฉะนั้น บวกองค์ประกอบเข้าตัวแปร
- แสดงตัวแปรเป็นเอาต์พุทบนคอนโซล
- นอกฟังก์ชัน ทำดังนี้:
- กำหนด nested list และแสดงบนคอนโซล
- เรียกเมธอดโดยส่งลิสต์นี้เป็นพารามิเตอร์
- แสดงเอาต์พุทบนคอนโซล