zoukankan      html  css  js  c++  java
  • 【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('','')  表示所有字符  即使用时无需翻译

     

     

  • 相关阅读:
    Vue实现的mini计算器
    动态 WebApi 引擎使用教程(3行代码完成动态 WebApi 构建)
    [备忘] 解决 rzc discover exited with code -2147450730 问题
    一个由于侵入框架引起的故障
    计算机基础--01
    csharp: read xml
    Hystrix 原理深入分析-spring cloud 入门教程
    Hystrix 简介-spring cloud 入门教程
    linux下使用 du查看某个文件或目录占用磁盘空间的大小
    最火的Spring Cloud Gateway 为经过身份验证的用户启用速率限制实践-spring cloud 入门教程
  • 原文地址:https://www.cnblogs.com/cacique/p/2602351.html
Copyright © 2011-2022 走看看