1
a = [[1,2,3],[4,1],[2,2,6],[3]]

a 的总和将打印 24

我知道一个单一的列表,比如[1,2,3]我可以做sum(a)的,但我正在为一个嵌套列表而苦苦挣扎。

谢谢你。

4

2 回答 2

6

这不会创建新的临时列表:

sum(sum(b) for b in a)
于 2013-03-14T15:47:42.720 回答
3
sum(sum(a, []))

内部总和将所有单独的列表组合成一个列表。然后外部总和找到实际总和。

对于嵌套超过一层的列表,您可以使用以下命令:

def recursiveSum(data):
    try:
        total = 0
        for item in data:
            total += recursiveSum(item)
        return total
    except TypeError: #data isn't iterable, it's probably a number
        return data

print recursiveSum([[[[1,2,3],[4,1]],[2,2,6]],3])

输出:

24
于 2013-03-14T15:43:58.737 回答