Python天天美味(9) – translator

來源:互聯網
上載者:User
文章目錄
  • 1.string.maketrans設定字串轉換規則表(translation table)
  • 2.translate函數進行字串的替換和刪除,第一個參數是字串轉換規則表(translation table),第二個參數是要刪除的字串。比如,要將字串s中的所有e替換為a,同時要刪除所有的o
  • 3.假如我們這樣使用
  • 4.現在,已經不難理解下面這個函數了
1.string.maketrans設定字串轉換規則表(translation table)allchars = string.maketrans('', '')#所有的字串,即不替換字串
   aTob = string.maketrans('a','b')#將字元a轉換為字元b

2.translate函數進行字串的替換和刪除,第一個參數是字串轉換規則表(translation table),第二個參數是要刪除的字串。比如,要將字串s中的所有e替換為a,同時要刪除所有的oaTob = string.maketrans('e','a')
s = 'hello python'
print s.translate(aTob, 'o')

輸出結果:
hall pythn

3.假如我們這樣使用allchars = string.maketrans('', '')
k = allchars.translate(allchars, 'a')

allchars表示所有的字串,而k表示從所有的字串中去除掉字元a,就是說所有的字元,除了a,因此,我們再調用如下方法時:s = '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) - 可愛的大小寫

...

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.