for 循环中的字符串删除

问题描述 投票:0回答:2

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

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(), "")
没有通过。

python for-loop substring
2个回答
0
投票

如果您的目标是从

s
中删除一些子字符串,您可以简单地执行以下操作:

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

无需手动检查子字符串是否确实存在,因为

replace
无论如何都会这样做。


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.