第6章-3.列表或元組的數字元素求和 (20分)


求列表中數字和,列表中嵌套層次不限2層

輸入格式:

在一行中輸入列表或元組

輸出格式:

在一行中輸出數字的和

輸入樣例:

在這里給出一組輸入。例如:

[11,2,[3,7],(68,-1),"123",9] 
 

輸出樣例:

在這里給出相應的輸出。例如:

99
遞歸版本1
 1 # 列表或元組的數字元素求和-遞歸算法1
 2 # Author: cnRick
 3 # Time  : 2020-4-13
 4 def getSum(items):
 5     if (type(items) == int) or (type(items) == str):
 6         if type(items) == int:
 7             return items
 8         elif type(items) == str:
 9             return 0
10     else:
11         if (type(items) == tuple) or (type(items) == list):
12             result = 0
13             for i in range(len(items)):
14                 result += getSum(items[i])
15             return result
16         else:
17             return 0
18 
19 items = eval(input())
20 result = 0
21 for i in range(len(items)):
22     result = result + getSum(items[i])
23 print(result)

遞歸版本2

 1 # 列表或元組的數字元素求和-遞歸算法2
 2 # Author: cnRick
 3 # Time  : 2020-4-13
 4 def flatten(items):
 5     lst = []
 6     for x in items:
 7         if isinstance(x,(list,tuple)) and not isinstance(x,str):
 8             for element in flatten(x):
 9                 lst.append(element)
10         else:
11             if type(x)!=str:
12                 lst.append(x)
13     return lst
14 items = eval(input())
15 I = [num for num in flatten(items)]
16 print(sum(I))

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM