复杂的递归函数

我需要编写一个函数nested_sum(L),它将对一个列表中的所有int求和,无论它们是否在另一个列表中。这与对另一个函数mult2(n)进行递归调用

例子:

>>> nestedSum(mult2( [1,['a',3,'b',2],[4,['h',8,[10]]], -5]))
24

我尝试编写此代码:

def mult2(n):
    if type(n) == int and n%2 ==0:
        return n

def nested_sum(L):
    total = 0 
    for i in L:
        if isinstance(i, list):  
            total += nested_sum(i)
        else:
            total += i
    return total

不幸的是,我无法更改mult2(n)函数的代码。我只能更改nested_sum(L)函数。

有人可以给我一个提示怎么办吗?谢谢你。

姆霍克

我不确定示例调用是否正确:

nestedSum(mult2( [1,['a',3,'b',2],[4,['h',8,[10]]], -5]))

调用mult2()列表将始终返回None传递NonenestedSum()总是会导致TypeError

mult2()用于过滤非整数和奇数整数。我认为您应该mult2作为过滤器函数传递nestedSum()

def mult2(n):
    if type(n) == int and n%2 ==0:
        return n

def nested_sum(L, predicate):
    total = 0
    for item in L:
        if isinstance(item, list):  
            total += nested_sum(item, predicate)
        elif predicate(item):
            total += item
    return total

现在调用该函数,将其mult2()作为谓词函数传递给nested_sum():

>>> nested_sum([1,['a',3,'b',2],[4,['h',8,[10]]], -5], mult2)
24

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

证明递归函数的上限复杂度?

来自分类Dev

如何计算递归函数的复杂度?

来自分类Dev

递归置换函数的复杂度

来自分类Dev

递归函数的渐近时间复杂度

来自分类Dev

确定递归函数的时间复杂度

来自分类Dev

递归置换函数的复杂度

来自分类Dev

测量递归函数的代码复杂度

来自分类Dev

递归函数的时间复杂度

来自分类Dev

如何计算递归函数的复杂度?

来自分类Dev

递归函数的时间复杂度

来自分类Dev

如何计算递归函数的时间复杂度?

来自分类Dev

非平凡递归函数的时间复杂度

来自分类Dev

加泰罗尼亚数字,递归函数时间复杂度

来自分类Dev

确定递归函数的CN和时间复杂度

来自分类Dev

if-else语句的递归函数时间复杂度

来自分类Dev

递归函数的时间复杂度是多少?

来自分类Dev

如何在Mathemathica中定义使用复杂递归关系的函数?

来自分类Dev

递归置换函数的运行时复杂度

来自分类Dev

两个递归函数之和的复杂度?

来自分类Dev

加泰罗尼亚数字,递归函数时间复杂度

来自分类Dev

非递归函数的FIbonacci时间复杂度

来自分类Dev

此递归函数的时间复杂度是多少?

来自分类Dev

计算内部有循环的递归函数的时间复杂度

来自分类Dev

递归函数内循环的时间复杂度

来自分类Dev

SQL复杂递归CTE

来自分类常见问题

具有恒定循环和递归的给定函数的时间复杂度

来自分类Dev

递归函数的最小空间复杂度是否为O(N)?

来自分类Dev

具有两个调用的递归函数的时间复杂度

来自分类Dev

如何计算此递归函数的最坏情况下的时间复杂度?