<strike id="rrvnz"></strike>

    <noframes id="rrvnz">
    <noframes id="rrvnz"><span id="rrvnz"><pre id="rrvnz"></pre></span><address id="rrvnz"></address>
    <address id="rrvnz"><nobr id="rrvnz"></nobr></address><noframes id="rrvnz">
      <em id="rrvnz"></em>

        首 頁IT知識庫翔宇問吧收藏內容
        當前位置:翔宇亭IT樂園IT知識庫Python

        Python maketrans()函數

        減小字體 增大字體 作者:本站  來源:本站整理  發布時間:2021-07-12 19:50:52

        Python maketrans()是一個靜態函數(使用str類型直接調用,而非字符串),其作用是為str.translate()函數提供轉換字符映射表。

        maketrans()語法格式

        官方文檔給出的語法格式如下:

        static str.maketrans(x[, y[, z]])

        參數

        該函數有三個參數,其中后兩個是可選參數。

        (1)該函數只有一個參數 x 時, x 必須是字典類型,以給出轉換的映射關系。字典的鍵取值可以是:對應某個Unicode字符的整型序數,或者字符(長度為1的字符串);鍵對應的值取值可以為Unicode字符序數(整型),任意長度的字符串或None

        (2)該函數取兩個參數時, x y 必須是等長的字符串。在生成的結果字典中, x 中的每一個字符將于 y 中相同位置的字符進行匹配;

        (3)該函數取第三個參數時,該參數 z 必須是一個字符串,字符串中的每個字符將使用 None 進行匹配,即在使用 str.translate()函數 str 進行轉換時, str 中包含在 z 中的字符將被刪除掉。

        返回值

        該函數的返回值是字典類型。是由 x 中的字符對應的Unicode序數作為鍵, y 中對應的字符序數作為元素值構成的字典,當指定 z 參數時, z 參數中的每個字符Unicode序數也會作為字典中的鍵,而對應的值為 None .

        Python maketrans()函數

        maketrans()函數示例

        1、只有一個參數

        當給定一個參數x時,x必須是字典類型。

        >>> d1 = str.maketrans({98:104})
        >>> d1
        {98: 104}
        >>> type(d1)
        <class 'dict'>
        >>> d2 = str.maketrans({'a':'b'})
        >>> d2
        {97: 'b'}
        >>> d3 = str.maketrans({'a':'abcd'})
        >>> d3
        {97: 'abcd'}
        >>> d4 = str.maketrans({'a':None,'b':'c',100:110,112:'abc'})
        >>> d4
        {97: None, 98: 'c', 100: 110, 112: 'abc'}
        >>> d5 = str.maketrans('a')
        Traceback (most recent call last):
          File "<pyshell#10>", line 1, in <module>
            d5 = str.maketrans('a')
        TypeError: if you give only one argument to maketrans it must be a dict

        >>> d5 = str.maketrans(103)
        Traceback (most recent call last):
          File "<pyshell#11>", line 1, in <module>
            d5 = str.maketrans(103)
        TypeError: if you give only one argument to maketrans it must be a dict

        >>> d5 = str.maketrans(None)
        Traceback (most recent call last):
          File "<pyshell#12>", line 1, in <module>
            d5 = str.maketrans(None)
        TypeError: if you give only one argument to maketrans it must be a dict

        >>>  

        從上面的例子可以看出,當所給的參數不是字典類型時,將引發“TypeError”錯誤。

        2、給定兩個參數

        當給定兩個參數x和y時,x和y必須是等長的字符串。

        >>> x = '1234'
        >>> y = 'abcd'
        >>> print(str.maketrans(x,y))
        {49: 97, 50: 98, 51: 99, 52: 100}
        >>> print(str.maketrans('xyz','ab'))
        Traceback (most recent call last):
          File "<pyshell#17>", line 1, in <module>
            print(str.maketrans('xyz','ab'))
        ValueError: the first two maketrans arguments must have equal length

        >>> print(str.maketrans('ab','xyz'))
        Traceback (most recent call last):
          File "<pyshell#18>", line 1, in <module>
            print(str.maketrans('ab','xyz'))
        ValueError: the first two maketrans arguments must have equal length

        >>> print(str.maketrans('abc','xy '))
        {97: 120, 98: 121, 99: 32}
        >>> 

        注意:最后一個例子中 y 參數的字符串中最后一個字符為空格。同時,我們注意到如果兩個字符串不等長時,將引發“ValueError”錯誤。

        3、給定3個參數

        給定三個參數時,z參數是一個字符串,用于指定要刪除的字符。

        >>> x = 'abcd'
        >>> y = 'wxyz'
        >>> z = 'hij'
        >>> print(str.maketrans(x, y, z))
        {97: 119, 98: 120, 99: 121, 100: 122, 104: None, 105: None, 106: None}
        >>> 

        從上面的例子可以看出,'h', 'i', 'j' 三個字符被轉換成了None,即在使用str.translate()函數時,這些字符將被刪除掉。

        4、maketrans()函數與translate()函數配合使用

        前面說過,maketrans()函數主要是為translate()函數生成轉換的字符映射表,下面的例子將演示兩者如何配合使用的。

        >>> x = 'aeiou'
        >>> y = 'vwxyz'
        >>> z = 'rst'
        >>> dic = str.maketrans(x, y, z)
        >>> str1 = 'I love my country as much as i love my life.'
        >>> res = str1.translate(dic)
        >>> print(res)
        I lyvw my cyzny v mzch v x lyvw my lxfw.
        >>> 

        上面演示了maketrans()函數和translate()函數的配合使用方法。從結果中可以看出,translate()函數執行完畢后,str1中的字符'a', 'e', 'i', 'o', 'u' 五個字母(由參數x給定的字符串中的字符)分別被 'v', 'w', 'x', 'y' 和 'z' (由參數y給定的字符串中的字符)給替換掉了,同時在str1中刪除掉了參數z中指定的字符。

        從這個例子中,我們也注意到,maketrans()函數和translate()函數的參數值是大小寫敏感的,原因在于其按照Unicode字符序數來處理字符。

        總結

        以上講解了Python中靜態函數maketrans()的參數及使用方法,并給出了其與translate()函數配合使用的例子。

        實際上,maketrans()函數就是生成由鍵值對構成的字符映射表,其結果作為translate()函數的參數,用于對字符串中的字符進行替換,maketrans()函數中x參數用于給出需要替換的字符構成的字符串,y參數用于給出替換后的字符構成的字符串,z參數給出需要在字符串刪除掉的字符構成的字符串。


        以上內容,你 get 到了嗎也歡迎你關注本站的公眾號優雅的代碼】,本站中的內容也將定期更新到公眾號中

        如需轉載請注明出處:翔宇亭IT樂園(http://www.sunyaoshi.com),并給出本文的鏈接地址:

        http://www.sunyaoshi.com/article/python/2021/6519.html

        微信搜索“優雅的代碼”關注本站的公眾號,或直接使用微信掃描下面二維碼關注本站公眾號,以獲取最新內容。

        個人成長離不開各位的關注,你的關注就是我繼續前行的動力。

        知識評論評論內容只代表網友觀點,與本站立場無關!

           評論摘要(共 0 條,得分 0 分,平均 0 分) 查看完整評論
        愿您的精彩評論引起共鳴,帶來思考和價值。
        用戶名: 查看更多評論
        分 值:100分 90分 80分 70分 60分 40分 20分
        內 容:
        驗證碼:
        關于本站 | 網站幫助 | 廣告合作 | 網站聲明 | 友情連接 | 網站地圖
        本站部分內容來自互聯網,如有侵權,請來信告之,謝謝!
        Copyright © 2007-2021 biye5u.com. All Rights Reserved.
        特黄特色三级在线观看 - 视频 - 在线观看 - 影视资讯 -心晴网