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。当您循环并修改相同的字符串时,结果不是你所期望的。
这里是新手,也是真正的编码新手。任何帮助都会很棒。如果我没有得到论坛或社区的正确格式,我很抱歉。另外,我的编码讨论术语也可能不适用。
我想检查是否存在子串对,然后删除多个子串对。我尝试了以下方法:
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。当您循环并修改相同的字符串时,结果不是你所期望的。