一晩かけて考えましたが、手っ取り早い方法が見つかりませんでした
最初に配置されたのは 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))
私はもうこれらのコードを書きたくありません。
第一に、辞書が大きくなると、これらのコードは台無しになります。
2番目に、Pythonでこの仕事をするためのもっとエレガントな方法がいくつかあるはずだと私は信じています
編集:最初の段落で修正しましたが、それはポイントではありませんでした。