代码如下: 核心思想,keep = all - delete
#encoding=utf-8 print '中国' import string #字符串Translate的使用 不支持unicode def translator(frm='',to='',delete='',keep=None): if len(to) == 1: #拓展 to = to * len(frm) trans = string.maketrans(frm,to) if keep is not None: allchars = string.maketrans('','') delete = allchars.translate(allchars,keep.translate(allchars,delete)) def translate(s): #闭包 return s.translate(trans,delete) return translate digit_only = translator(keep=string.digits) print digit_only('abc123') nodigit = translator(delete=string.digits) print nodigit('abc123') repel = translator(frm=string.digits,to='#') print repel('abc123') #print repel(u'ab1123c中国') #runtime error
打印结果如下:
中国
123
abc
abc###