Po prostu bawię się symulacją (Mendel's First Law of Inheritance).Lista zapełnień z krotkami
Zanim mogę pozwolić współmieszkom zwierząt i przeanalizować wynik, należy wygenerować populację, tj. Lista musi być wypełniona zmienną liczbą trzech różnych typów krotek bez rozpakowywania ich.
Starając się zapoznać z itertools (Muszę kombinacje później w części współpracującej), wymyśliłem następujące rozwiązanie:
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]
co skutkowałoby:
[('A', 'A'), ('A', 'A'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a')]
Czy istnieje rozsądniejszy, pytonowy lub oszczędzający pamięć sposób na zbudowanie ostatecznej listy, np. bez generowania najpierw list dla trzech typów osób?
Czym dokładnie jest wyjście masz nadzieję? – cdhagmann
@cdhagmann Edytowane pytanie, oczekiwany wynik jest teraz dołączony –