我正在尝试修复下面的代码。
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)组成。怎么啦?
发布于 2017-11-08 01:39:05
一种可能的解决方案(在其他解决方案中,可能更多的是pythonic)是
from pylab import *
protein = ''
amino_acids = ['P', 'G', 'L', 'A']
while len(protein) <= 1000:
protein = protein + choice(amino_acids)
print(protein)在这里,您将创建一个空字符串protein。while循环从amino_acids开始并附加一个随机元素,直到字符串长度达到1000。
一行代码应该是
proteins = ''.join([choice(amino_acids) for x in range(1000)])这里,使用所谓的list comprehension从amino_acids生成1000个选项。这1000个元素以列表的形式存储。应用join会将元素缩写为单个字符串。
请注意,''意味着我们不需要在氨基酸之间使用分隔符。例如,使用'-'将导致类似如下的结果
L-A-P-G-L-...发布于 2018-02-21 03:32:51
另一种方法是生成一个随机数列表,然后使用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]发布于 2018-08-13 23:37:49
为什么不是这个呢?
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‘。
https://stackoverflow.com/questions/47163992
复制相似问题