擅长:python、mysql、java
<p>从生成有限序列的生成器函数中去掉<code>yield</code>就像将生成的值附加到列表中以返回一样简单。你知道吗</p>
<p>例如,您的<code>mot</code>函数可以在没有<code>yield</code>的情况下修改为:</p>
<pre><code>def mot(n) :
output = []
if n==0 :
output.append(n)
else :
for m in mot(n-1) :
output.append([m])
for k in range(0,n-1) :
for l in mot(k) :
for r in mot(n-2-k) :
output.append((l,r))
return output
</code></pre>
<p>但是,除非调用者需要对返回的列表执行基于索引的操作,否则不需要转换函数以返回列表,因为生成器速度更快,内存效率更高。你知道吗</p>