识别重叠范围

2024-09-29 21:27:12 发布

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

我有一个字典,其中包含键作为子字符串,它的值作为开始索引和结束索引的列表,它出现在一个序列中。我必须识别那些键,它们是另一个键的子串,并且较小长度键的索引范围位于较大长度键的范围内。例如:

{'TGTGT': [(1, 5), (3, 7)], 'GTGT': [(2, 5), (4, 7), (38, 41)], 'GTCA': [(6, 9), (17, 20), (40, 43)], 'CATG': [(8, 11), (27, 30), (42, 45)], 'CATGCTACG': [(8, 16), (27, 35)], 'ATGCTACG': [(9, 16), (28, 35)], 'TGCTACG': [(10, 16), (29, 35)], 'GCTACG': [(11, 16), (30, 35)], 'CTACG': [(12, 16), (31, 35)], 'TACG': [(13, 16), (32, 35)], 'GTGTCATG': [(4, 11), (38, 45)], 'TGTCATG': [(5, 11), (39, 45)], 'GTCATG': [(6, 11), (40, 45)], 'TCATG': [(7, 11), (41, 45)], 'ATGT': [(0, 3), (43, 46)]}

对于键'TCATG'和'GTCATG','TCATG'是后者的子串,其范围索引即(7,11)、(41,45)位于'GTCATG'范围内,即(6,11)、(40,45) 同样,对于其他键也是如此

最有效的方法是什么


Tags: 字符串列表字典序列子串gtcacatggtgt

热门问题