删除字符串中特定索引处的字符“范围”

时间:2018-11-14 20:49:43

标签: python string list

我看过类似的问题,但仍然很难弄清楚这个问题。

我有两个字符串列表,其中一个由“ 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 :(得分:2)

使用index查找要罢工的地方,然后按照常规方式删除字符:

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

当然,您需要确保strike_at+1是合法索引(请参阅tryexcept)。