a = [[1,2,3],[4,1],[2,2,6],[3]]
将打印24的总和
我知道单个列表,例如[1,2,3]
我可以sum(a)
,但我正在努力使用嵌套列表。
谢谢。
答案 0 :(得分:6)
这不会创建新的临时列表:
sum(sum(b) for b in a)
答案 1 :(得分: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