• 【python cookbook】简化字符串的translate 方法的使用


    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    #简化字符串的translate 方法的使用
    
    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:
            allchars = string.maketrans('','')
            delete = allchars.translate(allchars,keep.translate(allchars,delete))
    #
    keep.translate(allchars,delete) 表示去掉keep和deleted中共有的字符
        def translate(s):
    return s.translate(trans,delete)
    return translate

    测试

    >>>digits_only = translator(keep=string.digits)
    >>>digits_only ('abcd,1234')
    
    >>> '1234'
    keep=string.digits    表示只取keep中数字

    translate()

    S.translate(table [,deletechars]) -> string

    Parameters:

    Here is the detail of parameters:

    • table: You can use the maketrans() helper function in the string module to create a translation table.

    • deletechars: list of characters to be removed from the source string.

    Return Value:

    It returns a translated copy of the string.

    简单来说就是对字符串S移除deletechars包含的字符,然后保留下来的字符按照table里面的字符映射关系映射(比如a变成A)。

    deletechars的例子

    #!/usr/bin/python
    
    from string import maketrans   # Required to call maketrans function.
    
    intab = "aeiou"
    outtab = "12345"
    trantab = maketrans(intab, outtab)
    
    str = "this is string example....wow!!!";
    print str.translate(trantab);
    
    
    th3s 3s str3ng 2x1mpl2....w4w!!!

    deletechars的例子

    #!/usr/bin/python
    
    from string import maketrans   # Required to call maketrans function.
    
    intab = "aeiou"
    outtab = "12345"
    trantab = maketrans(intab, outtab)
    
    str = "this is string example....wow!!!";
    print str.translate(trantab, 'xm');
    
    #This will produce following result:
    th3s 3s str3ng 21pl2....w4w!!!

    maketrans()

    str.maketrans(intab, outtab]);

    Parameters:

    Here is the detail of parameters:

    • intab: string having actual characters.

    • outtab: string having corresponding mapping character.

    Return Value:

    It returns a translate table to be used translate() function.

    Example:

    #!/usr/bin/python
    
    from string import maketrans   # Required to call maketrans function.
    
    intab = "aeiou"
    outtab = "12345"
    trantab = maketrans(intab, outtab)
    
    str = "this is string example....wow!!!";
    print str.translate(trantab);

    th3s 3s str3ng 2x1mpl2....w4w!!!

    allchars = string.maketrans('','')  表示所有字符  即使用时无需翻译

     

     

  • 相关阅读:
    ThreadLocal的分享
    remot debug
    小计-git
    入坑HttpServletRequest.getParameterMap
    基于线程池和连接池的Http请求
    spring,maven,dubbo配置
    springMVC,mybatis配置事务
    寻找数组的主元素问题的解法
    关于最大子序列和问题以及相关衍生问题的分析
    关于选择问题的一些思路.
  • 原文地址:https://www.cnblogs.com/cacique/p/2602351.html
Copyright © 2020-2023  润新知