以下是长度约为+1000的python字符串。
string1 = "XXXXXXXXXXXXXXXXXXXXXAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBB........AAAAXXXXX"
len(string1) ## 1311
我想知道连续X的结尾和非X字符开始的位置的索引。从左到右读取此字符串,第一个非X字符位于索引位置22,而从右边的第一个非X字符位于索引位置1306。
如何找到这些指数?
我的猜测是:
for x in string1:
if x != "X":
print(string.index(x))
问题是它输出所有不是X的索引。它没有给我连续X结束的索引。
更让我困惑的是如何“检查”连续的X。假设我有以下字符串:
string2 = "XXXXAAXAAAAAAAAAAAAAAABBBBBBBBBBBBBB........AAAAXXXXX"
在这里,连续的X在索引4处结束,而不是索引7。我如何检查前面的几个字符是否真的不再连续?
最佳答案
如果我很了解您的问题,请执行以下操作:
def getIndexs(string):
lst =[]
flag = False
for i, char in enumerate(string):
if char == "x":
flag = True
if ((char != "x") and flag):
lst.append(i-1)
flag = False
return lst
print(getIndexs("xxxxbbbxxxxaaaxxxbb"))
[3,10,16]