做这个总和的非理解列表方式是什么?

时间:2013-08-15 14:29:03

标签: python sum list-comprehension nested-lists

def nested_sum(L):
    return sum( nested_sum(x) if isinstance(x, list) else x for x in L )

这是Eugenie在以下帖子中给出的解决方案:sum of nested list in Python

我只是试图在不使用理解列表的情况下重新创建它,但我无法得到它。我怎么能这样做?

1 个答案:

答案 0 :(得分:0)

代码使用generator expression,而不是列表理解。

使用循环并+=累加结果:

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

或者,如果您希望将conditional expression扩展为if语句:

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