import string class Translator: allchars = string.maketrans('','') def __init__(self, frm='', to='', delete='', keep=None): if len(to) == 1: to = to * len(frm) self.trans = string.maketrans(frm, to) if keep is None: self.delete = delete else: self.delete = self.allchars.translate(self.allchars, keep.translate(self.allchars, delete)) def __call__(self, s): return s.translate(self.trans, self.delete)