擅长:python、mysql、java
<p>使用<code>re</code>避免重复替换。模式是从转义键构建的,替换字符串是使用lambda表达式动态映射的</p>
<pre><code>import re
table = {"The": "A", "sun": "nap", "shining": "süt", "wind": "szél", "not": "nem", "blowing": "fúj"}
def translate(string, mapping):
pattern = r'(' + r'|'.join(re.escape(k) for k in mapping.keys()) + r')'
return re.sub(pattern, lambda m: mapping[m.group(1)], string)
print(translate('The sun is not blowing wizd', table))
</code></pre>