我正在写一些递归函数。考虑它的原型是:
def path(a, row=0, col=0, weight=0, cumulative=[])
我试图在矩阵中找到一些路径a
。到目前为止,权重添加了该路径的值,并且累积跟踪路径。
在某些时候,它被调用:
return path(a, row+1, col, weight, cumulative) + path(a, row+1, col+1, weight, cumulative)
现在基本情况如下:
cumulative.append(a[row][col])
weight = weight + a[row][col]
return weight
它将当前矩阵元素添加到累积中,添加权重并返回权重。问题是每次cumulative
调用 append 时,它都会添加到cumulative
. 如何确保每个递归堆栈帧采用不同的副本cumulative
?
因此,当在基本情况下调用 append 时,我希望累积调用的值是帧调用者,而不是前一个递归堆栈帧。
有什么建议么?谢谢。