2024-10-01 13:29:44 发布
网友
我有一串核糖核酸,即:
AUGGCCAUA
我希望通过以下方式生成所有子字符串:
我写了一个代码来解决第一个子问题:
for i in range(0,len(rna)): if fmod(i,3)==0: print rna[i:i+3]
我试图改变起始位置,即:
for i in range(1,len(rna)):
但结果却不正确:
GCC, UA #instead of UGG, CCA
你能告诉我我的错误在哪里吗?在
代码的问题是,总是从可被3整除的索引中提取子字符串。相反,试试这个
a = 'AUGGCCAUA' def getSubStrings(RNA, position): return [RNA[i:i+3] for i in range(position, len(RNA) - 2, 3)] print getSubStrings(a, 0) print getSubStrings(a, 1) print getSubStrings(a, 2)
输出
说明
range(position, len(RNA) - 2, 3)将生成一个具有公共差3的数字列表,从position开始,直到列表的长度-2。例如
range(position, len(RNA) - 2, 3)
position
print range(1, 8, 3)
1是起始数,8是最后一个数,3是共同的区别,它将给出
1
8
3
[1, 4, 7]
这些是我们的起始指数。然后我们使用list comprehension生成如下新列表
[RNA[i:i+3] for i in range(position, len(RNA) - 2, 3)]
我想到了一条线:
a = 'AUGGCCAUA' [a[x:x+3] for x in range(len(a))][:-2]
这就是你要找的吗?在
for i in range(len(rna)): if rna[i+3:]: print(rna[i:i+3])
输出:
代码的问题是,总是从可被3整除的索引中提取子字符串。相反,试试这个
输出
^{pr2}$说明
range(position, len(RNA) - 2, 3)
将生成一个具有公共差3的数字列表,从position
开始,直到列表的长度-2。例如1
是起始数,8
是最后一个数,3
是共同的区别,它将给出这些是我们的起始指数。然后我们使用list comprehension生成如下新列表
我想到了一条线:
这就是你要找的吗?在
输出:
^{pr2}$相关问题 更多 >
编程相关推荐