Python 中 maketrans 与 translate 的用法

Python 中 maketrans 与 translate 的用法

maketrans 和 translate 函数是进行字符串字符编码的常用方法。首先看下两个函数的签名和用法实例

maketrans

string.maketrans(from, to)

translate

string.translate(s, table[, deletechars])
str.translate(table[, deletechars])
unicode.translate(table)    

实例

import string
map = string.maketrans('123', 'abc')
s = "123345"
    
string.translate(s,map)
#'abcc45'

s.translate(string.maketrans('123', 'aaa'), '5')
#'aaaa4'

s.translate(map)
#'abcc45'

s.translate(string.maketrans('123', 'aaa'))
#'aaaa45'

在《Python CookBook》中有如下代码

import string 
def translator(from='', to='', delete='', keep=None): 
    if len(to) == 1: 
        to = to * len(from) 
    trans = string.maketrans(from, 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

这是作者把使用字符串的 translate 方法的需求写成的一个工厂闭包的形式,这样可以简单的创建并且使用它。

实例

digites_only = translator(keep=string.digits)
digites_only("Chris Perkins : 223-2346")
#'2232346'

digits_to_hash = translator(delete=string.digits)
digites_only("Chris Perkins : 223-2346")
#'Chris Perkins : -'

digits_to_hash = translator(from=string.digits, to='#')
digites_only("Chris Perkins : 223-2346")
#'Chris Perkins : ###-####'
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容