我只是在摆弄(Mendel's First Law of Inheritance)的模拟。在
在我可以让这些小动物交配并分析结果之前,必须生成种群,也就是说,必须用三种不同数量的元组来填充一个列表,而不必对它们进行解包。在
在尝试熟悉itertools(我稍后将在交配部分需要组合)时,我想出了以下解决方案:
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]
这将导致:
^{pr2}$是否有更合理的、Python式的或节省内存的方法来构建最终列表,例如,不首先生成三类个人的列表?在
我想这应该行得通。在
我把代码放在CodeBunk上,这样你就可以运行它了。在
或者
^{pr2}$可以使用
itertools.chain
组合迭代器:尽管我想说的是,当你可以简单地做
^{pr2}$[hd] * k
时,没有必要使用itertools.repeat
。事实上,我将按照以下方式进行模拟:或者也许
相关问题 更多 >
编程相关推荐