zoukankan      html  css  js  c++  java
  • Python天天美味(9) translator


    1.string.maketrans设置字符串转换规则表(translation table)

    allchars = string.maketrans('''')#所有的字符串,即不替换字符串
      
    aTob = string.maketrans('a','b')#将字符a转换为字符b

    2.translate函数进行字符串的替换和删除,第一个参数是字符串转换规则表(translation table),第二个参数是要删除的字符串。比如,要将字符串s中的所有e替换为a,同时要删除所有的o

    aTob = string.maketrans('e','a')
    = 'hello python'
    print s.translate(aTob, 'o')

    输出结果:
    hall pythn

    3.假如我们这样使用

    allchars = string.maketrans('''')
    = allchars.translate(allchars, 'a')
    allchars表示所有的字符串,而k表示从所有的字符串中去除掉字符a,就是说所有的字符,除了a,因此,我们再调用如下方法时:
    = 'abc'
    print s.translate(allchars, k)
    字面意思是,输出“字符串s中除去任何不是字符a的字符",即,只输出字符a,因此输出结果为:
    a

    4.现在,已经不难理解下面这个函数了

    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))
        
    def translate(s):
            
    return s.translate(trans, delete)
        
    return translate
    调用:
    digits_only = translator(keep=string.digits)
    print digits_only('Chris Perkins : 224-7992')

    digits_to_hash 
    = translator(frm=string.digits, to='#')
    print digits_to_hash('Chris Perkins : 224-7992')
    输出结果:
    2247992
    Chris Perkins : ###-####

    Python 天天美味系列(总)

    Python 天天美味(7) - 连接字符串(join %)  

    Python 天天美味(8) - 字符串中的字符倒转

    Python 天天美味(9) - translator  

    Python 天天美味(10) - 除法小技巧  

    Python 天天美味(11) - 可爱的大小写

    ...

  • 相关阅读:
    算法作业实验三
    牛客练习赛53 B 美味果冻
    牛客练习赛53 C 富豪凯匹配串
    bitmat
    牛客挑战赛33 B 鸽天的放鸽序列
    树状数组
    线段树
    2019牛客国庆集训派对day7 A 2016
    背包
    作业三 -并查集
  • 原文地址:https://www.cnblogs.com/coderzh/p/1180705.html
Copyright © 2011-2022 走看看