1
入力を考える:私は代替テーブルでそれをやって探すために各文字を反復してきたテーブルから単一のUnicodeの英数字ストリングを代入
nguyễn trần huyền my
:
nguye64n tra62n huye62n my
所望の出力を数字の後に数字のない文字が続く場合は、数字をキャッシュして翻訳します。
substitute = {'e64': u'ễ', 'a62': u'ầ', 'e62': 'ề'}
s = 'nguye64n tra62n huye62n my'
tonal = ''
x = ''
for ch in s:
if ch.isdigit():
tonal += ch
else:
if tonal:
tonal = substitute[x[-1] + tonal]
x = x[:-1] + tonal
tonal = ''
x += ch
[アウト]:
>>> x
'nguyễn trần huyền my'
は、置換テーブル与えられた同じ出力を達成するための簡単な方法はありますか?正規表現の置換またはstr.translate
の操作ですか?
あなたは 'substitute.get(m.groupを[使用している場合'substitute [m.group(0)]の代わりに' '' 'KeyError''を返さないで、元のテキストを返します。これは欲しい行動かもしれないし、そうでないかもしれない –