我尝试对嵌套元素列表求和
e.g, numbers=[1,3,5,6,[7,8]]
应该产生sum=30
我写了以下代码:
def nested_sum(L):
sum=0
for i in range(len(L)):
if (len(L[i])>1):
sum=sum+nested_sum(L[i])
else:
sum=sum+L[i]
return sum
上面的代码给出以下错误:
“int”类型的对象没有 len()
我也尝试过len([L[i]])
, 还是行不通。
有人可以帮忙吗?它是Python 3.3
你需要使用isinstance
检查一个元素是否是一个列表。另外,您可能想要迭代实际列表,以使事情变得更简单。
def nested_sum(L):
total = 0 # don't use `sum` as a variable name
for i in L:
if isinstance(i, list): # checks if `i` is a list
total += nested_sum(i)
else:
total += i
return total
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)