gpt4 book ai didi

Python,将字符串分成几个子串

转载 作者:太空狗 更新时间:2023-10-30 01:59:00 24 4
gpt4 key购买 nike

我有一串 RNA 即:

AUGGCCAUA

我想通过以下方式生成所有子字符串:

#starting from 0 character
AUG, GCC, AUA
#starting from 1 character
UGG, CCA
#starting from 2 character
GGC, CAU

我写了一个解决第一个子问题的代码:

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)

输出

['AUG', 'GCC', 'AUA']
['UGG', 'CCA']
['GGC', 'CAU']

解释

range(position, len(RNA) - 2, 3) 将生成公差为 3 的数字列表,从 position 开始直到列表 - 2. 例如,

print range(1, 8, 3)

1是起始数,8是最后一个数,3是公差,会给出

[1, 4, 7]

这些是我们的起始索引。然后我们使用 list comprehension像这样生成新列表

[RNA[i:i+3] for i in range(position, len(RNA) - 2, 3)]

关于Python,将字符串分成几个子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19892825/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com