круговой цикл с операторами - PullRequest
       5

круговой цикл с операторами

0 голосов
/ 21 сентября 2019

У меня есть строка типа:

string = "ABCDE_FG_HILMN__OP__QRS_TUVY"

У меня есть индекс ("позиция") буквы (M) в середине этой строки.

index = 11

Iнужен цикл, который, начиная с этой позиции индекса, печатает эту позицию +5 символов слева и +5 справа.Если есть _, он должен увеличиваться на 1, чтобы в выводе не было _ и имел бы в итоге символ 11, например:

FGHILMNOPQR

Моя идеяэто как:

for i in string:
 in = index
 if in != "_" andor [in-5] != "_".... andor ...
   print([in-5],[in-4],[in-3],[in-2],[in-1],[in],[in+1],[in+2],[in+3],[in+4],[in+5])
 elsif
  somethingelse 

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

это хорошее решение, но не идеальное.как это после удаления "" номер индекса изменится.если до этого индекс М составлял 12, то после 10. он должен быть слегка изменен, чтобы учесть количество «», которое вы удаляете с каждой стороны.

0 голосов
/ 21 сентября 2019

вы можете заменить "_" пустой строкой и получить 5 алфавитов вокруг M, как это

string = "ABCDE_FG_HILMN__OP__QRS_TUVY"

m_pos = 11 - string.count("_", 0, 11)

string.replace("_", "")[m_pos-5: m_pos+6]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...