junctions = [2,9,15,20]
seq_1 = 'sauron'
seq_2 = 'corrupted'
seq_3 = 'numenor'
combined = 'sauroncorruptednumenor' #seq_1 + seq_2 + seq_3
count_1 = 1
count_2 = 1
count_3 = 2
我有一个3个字符串的列表(序号1-3)。我将它们组合起来创建一个长字符串(组合) 我有一个索引(连接)列表。我为每个字符串设置了3个不同的计数器(计数1-3)
我要做的是找出组合序列中每个连接点[2,9,15,20]的位置。如果来自序列1-->;计数1+=1,如果来自序列2-->;计数2+=1,则来自序列3-->;计数3+=1
示例
junctions = [2,9,15,20]
count_1 = 0
count_2 = 0
count_3 = 0
combined = 'sauroncorruptednumenor'
seq_1 = 'sauron' #index 2 would be on 'u' in combined but originally from seq_1 so count_1 = count_1 + 1
seq_2 = 'corrupted' #index 9 would be on 'r' in combined so count_2 += 1
seq_3 = 'numenor' #index 15 would be 'n' in combined so count_3 += 1, and 20 would be 'o' so count_3 += 1
如果我有什么需要澄清的,请告诉我
你可以尝试一些基本的东西,比如
您可以在这里使用
collections.Counter
和bisect.bisect_left
:创建一个包含索引的列表,在每个
seq_
结束时:现在我们可以简单地在
junctions
上循环,并使用bisect.bisect_left
函数在break_points
列表中找到每个连接点的位置。你知道吗更好的输出使用
collections.defaultdict
:可以使用itertools中的
collections.Counter
、和repeat
和chain
,例如:相关问题 更多 >
编程相关推荐