string = 'aaascsscc' ls = list(string) def isA(ls): i = 0 while i < len(ls): if ls[i] == 'b': ls.pop(i) if i >= 1: i=i-1 else: ### if i < len(ls)-1:##操作后面的数 减一是为了防止越界 因为后面有i+1 if (ls[i] == 'a' and ls[i+1] == 'c'): ls.pop(i)#删除一个之后,列表后面的元素就往前填充了 ls.pop(i)#所以还是删除坐标为i的值 if i >= 1:#删除完之后吧坐标后退一个,因为可能有aacc这样的 在删除中间ac之后需要回退一个下标,继续操作 i=i-1 continue##然后执行下次循环 i+=1 isA(ls) string = ''.join(ls) print(string)