python translate方法

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


#- * - coding:utf - 8 -
*-
import string


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:
        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 translate


if __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= 1234
noDigits= goodhello
allchar=  <span style="white-space:pre">	</span>
 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������
keepOne= 1111


Process finished with exit code 0

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值