Удаление «диапазона» символов по определенным индексам в строке - PullRequest
0 голосов
/ 14 ноября 2018

Я просмотрел похожие вопросы, но мне все еще сложно разобраться в этом.

У меня есть два списка строк, один из которых состоит из символов типа 'abcdefg', а другой состоит из строк, состоящих из пробелов и специального символа.Специальный символ указывает, где я должен удалить символы из моей строки 'abcdefg'.Позиция специального символа в списке будет той же позицией, что и мне для удаления символа из первого списка.Мне также нужно удалить соседние символы.

РЕДАКТИРОВАТЬ: Я хочу удалить символ (и соседние символы) в той же позиции, что символ '*' находится в авиаударах, но в усилении.Имеет ли это смысл?

reinforces = ["abcdefg", "hijklmn"]
airstrikes = ["   *   "]
battlefield = reinforces[0]
bomb_range = []
count = 0

if range(len(airstrikes)) != 0:
    for airstrike in airstrikes:
        for char in airstrike:
            print(count)
            count = count + 1
            if (char == '*'):
                bomb_range.append(count-1)
                bomb_range.append(count)
                bomb_range.append(count+1)
                break


#Trying to hardcode it initially just to get it to work. Some kind of looping is needed though.
battlefield = battlefield[:bomb_range[0]] + battlefield[bomb_range[1]:]
battlefield = battlefield[:bomb_range[1]] + battlefield[bomb_range[2]:]
#battlefield = battlefield[:bomb_range[2]] + battlefield[bomb_range[3]:] #Will not work of course. But how could I achieve what I want?

Прошу прощения за вложенные циклы.Если вам больно смотреть на это, не стесняйтесь ругать и поправлять меня.Мне жаль, если я пропустил какие-либо ответы на этом форуме, которые могли бы помочь мне найти решение.Знайте, что я пытался найти один.

1 Ответ

0 голосов
/ 14 ноября 2018

Используйте index, чтобы найти место для удара, затем удалите персонажа обычным способом:

>>> reinforce = "abcdefg"
>>> airstrike = "   *   "
>>> strike_at = airstrike.index('*')
>>> reinforce[:strike_at]+reinforce[strike_at+1:]
'abcefg'

Конечно, вы должны убедиться, что strike_at+1 является допустимым индексом (см. try и except).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...