这是我尝试过的:
def recursive_list_counter(l):
sum = 0
for e in l:
if type(e) == type([]):
#print e
sum += 1
recursive_list_counter(e)
return sum
# should be 6 if I count the first also
recursive_list_counter([[[13, 7], 90], 2, [1, 100, [5, [2]]], 8, 6])
我想使用递归来检索列表中的列表数,同时还要计算原始列表。
您的递归调用将忽略返回的内容。添加返回值:
def recursive_list_counter(l):
sum = 0
for e in l:
if isinstance(e, list):
sum += 1
sum += recursive_list_counter(e)
return sum
请注意,外部列表在计数中被忽略,因此调用返回5,而不是6。
此外,您应该使用它isinstance()
来测试对象是否属于给定类型。
如果要查看6
,请计算函数中的当前列表,然后将嵌套列表的计数留给递归调用:
def recursive_list_counter(l):
sum = 1
for e in l:
if isinstance(e, list):
sum += recursive_list_counter(e)
return sum
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句