修正Python中的代码/生物信息学

2024-04-25 13:05:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试修复下面的代码。你知道吗

  from pylab import *
    protein = ''
    amino_acids = ['P', 'G', 'L', 'A']
    while ________:
        protein += choice(amino_acids)

    if len(protein) == 1000:
        print(protein)

我想得到的结果是一个长度为1000的随机蛋白质,由四个给定的氨基酸(p,G,L和a)组成。怎么了?你知道吗


Tags: 代码fromimportlenif蛋白质printchoice
3条回答

另一种方法是生成一个随机数列表,然后使用for循环遍历随机数列表并附加到蛋白质字符串上。你知道吗

import random
rand_num=[]
protein=''
amino=['P', 'G', 'L', 'A']

for i in range(1000):
    x=ranom.randint(0,(len(amino)-1))
    rand_num.append(x)

for index in rand_num:
    protein+=amino[index]

一个可能的解决方案(除其他外,可能更具Python性)是

from pylab import *
protein = ''
amino_acids = ['P', 'G', 'L', 'A']
while len(protein) <= 1000:
    protein = protein + choice(amino_acids)

print(protein)

在这里,创建一个空字符串proteinwhile循环从amino_acids开始并附加一个随机元素,直到字符串长度达到1000为止。你知道吗

一个班轮就可以了

proteins = ''.join([choice(amino_acids) for x in range(1000)])

这里,所谓的list comprehension用于从amino_acids生成1000个选择。1000个元素存储为一个列表。应用joincolapses元素到单个字符串。你知道吗

注意,''意味着我们不需要氨基酸之间的分隔符。使用例如'-'会导致

L-A-P-G-L-...

为什么不是这个?你知道吗

import random

amino_acids = ['P', 'G', 'L', 'A']
N = 10  # should be 1000 in your case
protein = ''.join( aa for aa in random.choices(amino_acids, k=N) )

如上所述,蛋白质可以是“PLLGAPAPGA”。你知道吗

相关问题 更多 >