擅长:python、mysql、java
<p>你可以编写一个快速的生成器函数。除了这个特殊的例子之外,这还有其他用途,所以我将对它进行一点概括。挖这个:</p>
<pre><code>def create(n, constructor=list):
for _ in xrange(n):
yield constructor()
</code></pre>
<p>然后列一张单子</p>
<pre><code>result = list(create(10))
</code></pre>
<p>列出一个空的口述</p>
<pre><code>result = list(create(20, dict))
</code></pre>
<p>(为了完整起见)列出一个空的foo列表</p>
<pre><code>result = list(create(30, Foo))
</code></pre>
<p>当然,你也可以做一个以上任何一个元组。扩展它以允许参数到构造函数也不难。我可能会让它接受一个接受索引并返回要传递给构造函数的参数的函数。</p>
<p>最后一个想法是,因为我们对<code>constructor</code>的唯一要求是它是可调用的,所以您甚至可以传递任何返回列表中所需内容的内容。例如,从数据库查询中提取结果的绑定方法。这是非常有用的三行代码。</p>