python translate方法

来源:互联网 发布:数据库能做什么 编辑:程序博客网 时间:2024/05/24 02:51

string 模块中的translate方法主要应用于一个字符串并返回该字符串的一个拷贝,这个拷贝中的所有字符都将按照传入的第一个参数(翻译表)指定的替换方法来替换,而且第二个参数指定的所有字符都将被删除。该模块的另一个函数maketrans是创建翻译表的工具函数。(翻译表是一个正好有256个字符的字符串t:当你把t作为一个参数传递给translate方法时,原字符串中的每一个字符c,在处理之后都被翻译成字符t[ord(c)])


#- * - coding:utf - 8 -*-import stringdef translator(frm='', to='', delete='', keep=None):    if len(to) == 1:        to = to * len(frm)    trans = string.maketrans(frm, to)    if keep is not None:        allchar = string.maketrans('', '')        print 'allchar=', allchar        delete = allchar.translate(allchar, keep.translate(allchar, delete))        # delete=keep.translate(allchar,delete)    def translate(s):        return s.translate(trans, delete)    return translateif __name__ == '__main__':    digitsOnly = translator(keep=string.digits)    print 'digitsOnly=', digitsOnly    print 'digits=', digitsOnly('good1234hello')    noDigits = translator(delete=string.digits)    print 'noDigits=', noDigits('good1234hello')    keepOne = translator(keep='1')    print 'keepOne=', keepOne('good23145111')
allchar=  <span style="white-space:pre"></span> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������digitsOnly= <function translate at 0x0000000002CAAEB8>digits= 1234noDigits= goodhelloallchar=  <span style="white-space:pre"></span> !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������keepOne= 1111Process finished with exit code 0

0 0
原创粉丝点击