for循环中的字符串删除

String removal in for loop

这里是新手,也是真正的编码新手。任何帮助都会很棒。如果我没有得到论坛或社区的正确格式,我很抱歉。另外,我的编码讨论术语也可能不适用。

我想检查是否存在子串对,然后删除多个子串对。我尝试了以下方法:

s = 'aabbccddee'

    for j in range(0,(len(s)-1)): 
        y = j + 1
        if s[j].lower() + s[y].lower() in ['aa','bb','cc','dd']:
            z =  s[j] + s[y]
            s = s.replace(z,'')
    else:
        print(False)

在这种情况下,所需的输出将是 s ='ee'。我取得的最好成绩是 'bbccddee'

范围 -1 是因为我遇到了超出范围的错误。这似乎解决了问题。

还有 z 因为 s.replace(s[j].lower() + s[y].lower(),"") 没有通过。

感谢任何帮助。谢谢。

如果您的目标是从 s 中删除一些子字符串,您可以简单地这样做:

 targets = ['aa','bb','cc','dd']
 for t in targets:
      s = s.replace(t, '')

无需手动检查子字符串是否确实存在,因为 replace 无论如何都会这样做。

我给你一个提示,希望你能继续。

将 'aa' 替换为 '' 后,当您进行第二次迭代时,它会从第二个 'b' 开始检查,因为 j 的值为 1。当您循环并修改相同的字符串时,结果不是你所期望的。