Tôi chỉ đang sử dụng mô phỏng (Mendel's First Law of Inheritance).Danh sách phổ biến với bộ dữ liệu
Trước khi tôi có thể cho các sinh vật giao phối và phân tích kết quả, dân số phải được tạo, tức là danh sách phải được điền với số lượng khác nhau của ba loại bộ khác nhau mà không giải nén chúng.
Trong khi cố gắng để làm quen với itertools (Tôi sẽ cần phải kết hợp sau đó trong phần giao phối), tôi đã đưa ra các giải pháp sau đây:
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]
mà sẽ cho kết quả:
[('A', 'A'), ('A', 'A'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a'), ('A', 'a')]
Có cách nào tiết kiệm hơn, hợp lý hoặc tiết kiệm bộ nhớ để xây dựng danh sách cuối cùng, ví dụ mà không tạo danh sách cho ba loại cá nhân trước?
gì chính xác là đầu ra bạn đang hy vọng gì? – cdhagmann
@cdhagmann Câu hỏi được chỉnh sửa, đầu ra dự kiến giờ đã bao gồm –