我只是在模仿(孟德尔的第一遗传定律).
在我可以让生物交配并分析结果之前,必须生成群体,即,必须在不解包它们的情况下用不同数量的三种不同类型的元组填充列表.
在尝试熟悉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]
Run Code Online (Sandbox Code Playgroud)
这将导致:
[('A', 'A'), ('A', 'A'), ('A', 'a'), ('A', 'a'), ('A', 'a'), …Run Code Online (Sandbox Code Playgroud)