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