我试图对嵌套元素的列表求和
例如,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
上述代码给出以下错误:
object of type 'int' has no len()
我也试过len([L[i]])
,但仍然没有成功。
有人能帮忙吗?它是Python3.3
Tags:
您需要使用
isinstance
检查元素是否是列表。另外,您可能需要遍历实际的列表,以使事情更简单。使用lambda处理嵌套列表的快速递归:
应用于列表的
rec
将返回值的和(递归地),返回值。通常认为对duck type更像是python,而不是显式类型检查。像这样的事情需要任何一个iterable,而不仅仅是列表:
相关问题 更多 >
编程相关推荐