第6章-5.列表元素个数的加权和(1) (40分)

输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权个数和。第一层每个元素算一个元素,第二层每个元素算2个元素,第三层每个元素算3个元素,第四层每个元素算4个元素,...,以此类推!

输入格式:

在一行中输入一个列表。

输出格式:

在一行中输出加权元素个数值。

输入样例:

在这里给出一组输入。例如:

[1,2,[3,4,[5,6],7],8]
 

输出样例:

在这里给出相应的输出。例如:

15
 1 #  列表元素个数的加权和(1)
 2 # Author: cnRick
 3 # Time  : 2020-4-13
 4 def getSum(items,depth):
 5     if (type(items) == int) or (type(items) == str):
 6         if type(items) == int:
 7             return depth
 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],depth+1)
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],1)
23 print(result)

 

 
posted @ 2020-04-13 22:26  cnRicky  阅读(833)  评论(1编辑  收藏  举报