簡體   English   中英

我如何列出清單

[英]How do I make a list

所以我想生成一個具有一定長度(基因組長度)基因組的個體(N),其中他們的基因組由“ 0s”,“ 1s”和“?s”組成,我使用下面的代碼,它可以按我的需要工作上班:

import random 
import numpy as np

def generate_individual(genomelength):
    individual = ''
    for i in range(genomelength):
        locus = random.random()
        if 0<=locus <0.25:
            i = '0'
        elif 0.25<=locus<0.5:
            i = '1'
        else:
            i = '?'
        individual += i
    return individual

print generate_individual(10)

但是我現在需要編寫將運行這個N次,產生這樣的字符串的群體,並將其存儲在一個列表/陣列的功能。 我以為生成一個長度為N的零列表,但這似乎行不通,而且我找不到如何創建要添加的空白數組的方法,有人可以幫我嗎? 謝謝

您可以使用列表理解 -

lst = [generate_individual(10) for _ in range(N)] #You will need to define N before (or use a constant)
print lst

您不需要創建長度為N的空字符串列表,而是可以如上所述快速創建所需的列表。

您可以通過列表理解來做到這一點。

例如:

import random 

def generate_individual(genome_length):
    individual = ''
    for i in range(genome_length):
        locus = random.random()
        if 0 <= locus < 0.25:
            i = '0'
        elif 0.25 <= locus< 0.5:
            i = '1'
        else:
            i = '?'
        individual += i
    return individual


genomes = [generate_individual(10) for _ in range(10)]
print genomes 

另外,我刪除了numpy導入,因為在此示例代碼中未使用它。

我的朋友告訴我這樣做:

def generate_population(N, genomelength):
    x = []
    for i in range(N):
        i = gen_individual(genomelength)
        x.append(i)

您的解決方案和他的解決方案之間有什么區別嗎? 謝謝順便說一句

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM