<p>我使用递归函数创建一个通过迷宫的流动路径。该函数返回正确的路径元组(row,col),但我需要以元组列表的形式提供它。例如,我需要创建这个表单</p>
<pre><code>[(0,0),(1,1),(2,2),(3,3),(4,3)]
</code></pre>
<p>但是函数返回:</p>
^{pr2}$
<p>函数如下:</p>
<pre><code>def FlowPathAt(fdir,row,col):
lItem = FlowOut(fdir,row,col)
if not lItem:
return (row,col)
else:
r,c = lItem
return [(row,col) , FlowPathAt(fdir,r,c)]
</code></pre>
<p><code>FlowOut(fdir,row,col)</code>是一个函数,返回从(行,列)开始的下一个单元格地址</p>
<p>在构建过程中有什么方法可以使这个列表变平吗?在</p>
<p>相似:<a href="https://stackoverflow.com/questions/27454390/how-to-flatten-a-list-of-tuples-into-a-pythonic-list">How to flatten a list of tuples into a pythonic list</a></p>
<p>对于列表增长,这需要大量内存管理,为什么不将其重构为生成器函数:</p>
<pre><code>def FlowPathAt(fdir, row, col):
while True:
yield row, col
lItem = FlowOut(fdir, row, col)
if lItem is None: break
row, col = lItem
</code></pre>