代码思路仅供参考,欢迎大家批评指正!
输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权个数和。第一层每个元素算一个元素,第二层每个元素算2个元素,第三层每个元素算3个元素,第四层每个元素算4个元素,…,以此类推!
在一行中输入列表
在一行中输出加权元素个数值。
[1,2,[3,4,[5,6],7],8]
15
利用递归函数实现
# By jurio.
def sum_fun3(l, layer):
sum = 0
layer += 1
for i in l:
if isinstance(i, int):
sum += layer
elif isinstance(i, list):
sum += sum_fun3(i, layer)
return sum
lst = list(eval(input()))
layers = 0
print(sum_fun3(lst, layers))