class make_xlat:
def __init__(self, *args, **kwargs):
self.adict = dict(*args, **kwargs)
self.rx = self.make_rx()
def make_rx(self):
return re.compile('|'.join(map(re.escape, self.adict)))
def one_xlat(self, match):
return str(self.adict[match.group(0)])
def __call__(self, text):
return self.rx.sub(self.one_xlat, text)
obj = make_xlat(adict) # adict 映射字典
obj('要转换的字符串')
来源于《Python Cookbook(第2版)中文版》——1.18 一次完成多个替换