a = [[1,2,3],[4,1],[2,2,6],[3]]
a 的总和将打印 24
我知道一个单一的列表,比如[1,2,3]
我可以做sum(a)
的,但我正在为一个嵌套列表而苦苦挣扎。
谢谢你。
这不会创建新的临时列表:
sum(sum(b) for b in a)
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