<p>我只是在摆弄(<a href="http://rosalind.info/problems/iprb/" rel="nofollow">Mendel's First Law of Inheritance</a>)的模拟。在</p>
<p>在我可以让这些小动物交配并分析结果之前,必须生成种群,也就是说,必须用三种不同数量的元组来填充一个列表,而不必对它们进行解包。在</p>
<p>在尝试熟悉<a href="http://docs.python.org/2/library/itertools.html" rel="nofollow">itertools</a>(我稍后将在交配部分需要组合)时,我想出了以下解决方案:</p>
<pre><code>import itertools
k = 2
m = 3
n = 4
hd = ('A', 'A') # homozygous dominant
het = ('A', 'a') # heterozygous
hr = ('a', 'a') # homozygous recessive
fhd = itertools.repeat(hd, k)
fhet = itertools.repeat(het, m)
fhr = itertools.repeat(hr, n)
population = [x for x in fhd] + [x for x in fhet] + [x for x in fhr]
</code></pre>
<p>这将导致:</p>
^{pr2}$
<p>是否有更合理的、Python式的或节省内存的方法来构建最终列表,例如,不首先生成三类个人的列表?在</p>