我想了一晚上,但找不到快速的方法来做到这一点
首先出现的是replace()
for x,y in {'aa':'a','ab':'b'}.items():
s = s.replace(x,y)
但它不适用于这种情况:'aabcc'
正确的是'abcc',但输出是'bcc'
我可以编写一些类似的代码(我已经用各种语言编写了这些代码,如 C#、php、actionscript 等。)
output = []
def foo1(x):
if(x!='a'):
output.append(x)
else:
functionPointer = readafterA
def readafterA(x):
if(x=='a'):
output.append('a')
elif(x=='b'):
output.append('b')
else:
output.append('a'+x)
functionPointer = foo1
functionPointer = normalExecute
for singlechar in s:
functionPointer(singlechar)
print(''.join(output))
我不想再写那些代码了,因为:
第一,当字典变大时,那些代码会搞砸。
第二,我相信在 Python 中必须有一些更优雅的方法来完成这项工作
编辑:我已经在第一段中修复了它,但这不是重点。