Например, у меня есть список l = ['.','b','w','w','w','b','.','.']
, как мне пройти по этому списку и вернуть индексы трех w, которые находятся между b.
Мне нужно иметь возможность обрабатывать такие случаи, как l = ['.','b','w','w','w','w','.','.']
, где нет второго 'b', в этом случае ничего не будет возвращено.Другие возможные случаи: l = ['.','b','w','w','.','.','b','.']
, в этом случае также ничего не будет возвращено.Я должен быть в состоянии получить последовательные w между b.До сих пор я пробовал это:
l = ['.','b','w','w','.','.','.','.']
q = []
loop = False
for i in range(len(l)):
if l[i] == 'b' and l[i+1] == 'w':
loop = True
elif l[i] == 'w' and l[i+1] == 'w' and l[i+2] == '.':
pass
elif l[i] == 'w' and l[i-1] == 'b' and l[i+1] == 'w' and loop == True:
q.append(i)
elif l[i-1] == 'w' and l[i] == 'w' and l[i+1] == 'w' and loop == True: q.append(i)
elif l[i] == 'w' and l[i+1] == 'b' and loop == True:
q.append(i)
loop = False
break
print(q)
Но это не обрабатывает все случаи и иногда возвращает ошибки.Как я могу сделать это без NumPy ?