第6章-5 列表元素个数的加权和
输入一个嵌套列表,嵌套层次不限,根据层次,求列表元素的加权个数和。第一层每个元素算一个元素,第二层每个元素算2个元素,第三层每个元素算3个元素,第四层每个元素算4个元素,…,以此类推!
输入格式:
在一行中输入一个列表。
输出格式:
在一行中输出加权元素个数值。
输入样例:
在这里给出一组输入。例如:
[1,2,[3,4,[5,6],7],8]
输出样例:
在这里给出相应的输出。例如:
15
x = eval(input())
'''一层一层加'''
def Sum(x, num, weight):
count = 0
for ch in x:
if isinstance(ch, int):
count += 1
num += count * weight
for ch in x:
if isinstance(ch, list):
num = Sum(ch, num, weight+1)
return num
print(Sum(x, 0, 1))
另解:
a = eval(input())
j = 0
def sum(n):
global j
j += 1
sums = 0
for i in n:
if isinstance(i, list):
continue
if isinstance(i, int):
sums += 1 * j
for i in n:
if isinstance(i, list):
sums += sum(i)
if isinstance(i, int):
continue
return sums
print(sum(a))