我有以下字符串:
array = "TQTDTQD"
对于数组中的每个D,我是否可以知道在每个D之前和之后有多少个连续的T或D与每个D之前的字母相同。所以对于第一个D,它是T之前的字母,然后我想找出在第一个D之前和之后有多少个连续的T。对于第二个D,它是Q之前的字母,所以我想找出第二个D之前和之后连续的Q
例如,对于第一个D,在D之前有1个T,在出现Q之前有1个T(例如:对于第一个D,它类似于“TDT”)
对于第二个D,之前有一个连续的Q,之后没有Q
我确实从以下Python代码开始查找每个T,Q,D的位置:
get_indexes = lambda x, xs: [i for (y, i) in zip(xs, range(len(xs))) if x == y]
T_position = get_indexes("T",array)
Q_position = get_indexes("Q",array)
D_position = get_indexes("D",array)
然后我试着在每个D之前找出T
for each in range(0,len(D_position)):
RightBeforeD = array[D_position[each]-1]
numberofT = []
for eachofallbefore in reversed(range(0,D_position[each])):
if array[eachofallbefore] ==RightBeforeD:
numberofT.append(array[eachofallbefore])
print (numberofT)
但这两个D的结果是第一个D:[“T”,“T”],第二个D:[“Q”,“Q”],似乎它打印出了每个D之前的所有T或Q
很多thx!你知道吗
我认为这是可行的:
相关问题 更多 >
编程相关推荐