擅长:python、mysql、java
<p>可以在每个递归调用中使用要附加到的中间列表。这样可以避免当前遇到的这些重新定义问题:</p>
<pre><code>def replicate_recur(times, data, result=None):
if result is None: # create a new result if no intermediate was given
result = []
if times == 1:
result.append(data)
else:
result.append(data)
replicate_recur(times - 1, data, result) # also pass in the "result"
return result
</code></pre>
<p>调用时:</p>
<pre><code>>>> replicate_recur(4, 2)
[2, 2, 2, 2]
</code></pre>