擅长:python、mysql、java
<p>递归函数调用看不到对同一函数的其他调用的局部变量。如果您希望多个调用能够使用同一个列表,那么列表必须是函数的参数或返回值(或者我假设是一个全局变量,但这将是一个非常糟糕的设计)。在</p>
<p>在这种情况下,我认为将list作为函数的返回值传递是最简单的。它将在基本情况下创建,其中您将返回普通列表<code>[1]</code>。每个外部调用都会向列表追加一个值(并使用之前在列表上的最后一个值进行计算)。在</p>
<pre><code>def recFactorialList(n):
if n == 1:
return [1] # base case, still returns a list
lst = recFactorialList(n-1)
n_fac = lst[-1] * n # use the last value to calculate a new value
lst.append(n_fac) # add n factorial to the end of the list
return lst # return the updated list
</code></pre>