不超过5层的嵌套列表求列表元素加权和
【问题描述】输入一个嵌套列表,嵌套层次不超过5层,根据层次,求列表元素的加权和,权是指元素在嵌套列表中的层次。第一层每个元素的权值为:元素值*1,第二层每个元素的权值为:元素值*2,第三层每个元素的权值为:元素值*3, ...,依此类推!
【输入形式】
按照列表的形式输入,每个元素是一个整数
【输出形式】
整数
【样例输入】
,7],8]
【样例输出】
72
【样例说明】
元素1,2,8是列表的第一层,所以其权是1。3,4,7 处于列表的第二层,其权是2。5,6处于列表的第三层,其权是3。所以列表元素的加权和为:
(1+2+8)*1+(3+4+7)*2+(5+6)*3=72 递归就可以解决
def f_ist(nl,j):
global b
j =j+1
for i in nl:
if type(i) is int:
b = b + i*j
#print(i,j,b)#去掉注释可以看见计算过程
elif type(i) is list:
f_ist(i,j)
return(b)
a =, 7], 8]
b = 0
print(f_ist(a,0)) elven08 发表于 2022-3-5 02:38
递归就可以解决
这个是计算过程和结果。 def func(arr, level = 1):
res = 0
for each in arr:
if type(each) == int:
res += each*level
else:
res += func(each, level + 1)
return res
arr = , 7], 8]
print(func(arr))72 elven08 发表于 2022-3-5 02:38
递归就可以解决
谢谢大佬 傻眼貓咪 发表于 2022-3-5 09:14
谢谢大佬
页:
[1]