如何获取DNA字符串中所有可能的连续三联体序列?
连续DNA三联体生成实现方案
你当前使用的步长为3的切片方法只能得到非重叠的间隔三联体,要获取所有连续重叠的三联体,仅需调整列表推导式中range的参数即可:
list_of_triplet = [dna[i:i+3] for i in range(len(dna) - 2)]
实现说明
range结束值设为len(dna) - 2,保证每次切片得到的子串长度都为3,避免生成无效的短片段- 取消原来的步长参数(默认步长为1),每次仅向右移动1位切片,即可得到所有连续重叠的三联体
示例验证
以你给出的dna = "ACCTAA"为例:
字符串长度为6,len(dna)-2 = 4,range(4)生成0、1、2、3四个索引,对应切片结果为:
dna[0:3]= ACCdna[1:4]= CCTdna[2:5]= CTAdna[3:6]= TAA
输出结果完全匹配需求。
可选适配
如果你的使用场景需要保留长度不足3的末尾片段,可将range的结束值改为len(dna)即可。
内容的提问来源于stack exchange,提问作者Maskurate
相关产品推荐
相关产品推荐

