使用递归计算列表的数量?

用户名

这是我尝试过的:

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])

我想使用递归来检索列表中的列表数,同时还要计算原始列表。

马丁·彼得斯(Martijn Pieters)

您的递归调用将忽略返回的内容。添加返回值:

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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用递归计算列表的数量?

来自分类Dev

使用递归计算列表中的元素总数

来自分类Dev

递归计算列表平均值

来自分类Dev

如何使用rsync在Python中递归计算目录中可用文件的数量?

来自分类Dev

使用递归计算回文数

来自分类Dev

使用递归计算大数字的幂

来自分类Dev

如何递归计算目录和文件的数量?

来自分类Dev

递归计算满足条件的值的数量并返回该数字

来自分类Dev

递归计算位数

来自分类Dev

如何使用或运算符递归计算目录中所有代码行的数量,以包括几种文件类型

来自分类Dev

通过递归计算列表中数字的出现

来自分类Dev

Haskell如何递归计算列表中元素的出现?

来自分类Dev

使用MacLaurin系列使用Java递归计算e ^ x

来自分类Dev

使用SQL进行递归计算以形成树

来自分类Dev

使用递归计算数组中元素的出现次数

来自分类Dev

使用递归计算更大数组中子数组的出现

来自分类Dev

如何使用递归计算数组中数字的实例?

来自分类Dev

使用变量模板的递归计算-gcc vs clang

来自分类Dev

使用递归计算数组内数组的和

来自分类Dev

使用递归计算数组中元素的出现次数

来自分类Dev

使用递归计算C#中的阶乘

来自分类Dev

使用数组和堆栈递归计算表达式

来自分类Dev

使用递归计算数组组合

来自分类Dev

使用 JavaScript 递归计算字符串中的元音

来自分类Dev

递归计算最接近的对

来自分类Dev

如何递归计算值

来自分类Dev

BigQuery递归计算列

来自分类Dev

如何递归计算a%b?

来自分类Dev

递归计算最接近的对