我想使用Python中的递归求和多维数组中的数字:

tab = [7, 5, [3, 6, [2]], 7, [1, [2, 3, [4]], 9, 2], 4]


我尝试了几件事,例如:

sum(map(sum, tab))


它适用于简单的数组,例如[[1, 2], [3, 4]],但不适用于最上方的那个。我收到此错误:


  TypeError:“ int”对象不可迭代


有什么想法吗?

最佳答案

一种方法:

tab = [7, 5, [3, 6, [2]], 7, [1, [2, 3, [4]], 9, 2], 4]

def r_sum(tab):
    return sum(r_sum(item) if isinstance(item, list) else item for item in tab)

r_sum(tab)
# 55

关于python - 使用递归在Python多维数组中求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53360527/

10-14 18:24