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) - 可爱的大小写 

... 



本文转自CoderZh博客园博客,原文链接:http://www.cnblogs.com/coderzh/archive/2008/05/03/1180705.html,如需转载请自行联系原作者

目录
相关文章
|
13天前
|
存储 JSON JavaScript
「Python系列」Python JSON数据解析
在Python中解析JSON数据通常使用`json`模块。`json`模块提供了将JSON格式的数据转换为Python对象(如列表、字典等)以及将Python对象转换为JSON格式的数据的方法。
28 0
|
13天前
|
XML JavaScript API
「Python系列」Python XML解析
在Python中,解析XML文件通常使用内置的`xml.etree.ElementTree`模块,它提供了一个轻量级、高效的方式来解析XML文档。此外,还有其他的第三方库,如`lxml`和`xml.dom`,它们提供了更多的功能和灵活性。
13 0
|
3月前
|
SQL 数据库连接 数据库
Python3 notes
Python3 notes
|
10月前
|
Python
python|typing模块的介绍
python|typing模块的介绍
78 0
|
Python
Python - typing 模块 —— NewType
Python - typing 模块 —— NewType
172 0
Python - typing 模块 —— NewType
|
前端开发 Python
[python skill]基于python的bootstrap analysis方法
上回书说到(惊堂木!)Dr. Semmelweis and the discovery of handwashing案例中的第8步中使用了bootstrap分析方法(Bootstrap analysis of Semmelweis handwashing data),其实小弟内心写起来是有一丢丢心虚的,因为本身不是相关专业出身没有系统学习过概率学的方法,加之互联网时代大家皮糙肉厚,其实没太多时间仔细研究某一种具体的方式方法(可能只有我一个人这样)。
4518 0
|
8天前
|
NoSQL Cloud Native Redis
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
阿里云瑶池数据库团队后续将持续参与Valkey社区,如过往在Redis社区一样耕耘,为开源社区作出持续贡献。
Redis核心开发者的新征程:阿里云与Valkey社区的技术融合与创新
|
8天前
|
关系型数据库 分布式数据库 数据库
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询
PolarDB分布式版助力《香肠派对》实现百亿好友关系20万QPS的毫秒级查询。
PolarDB闪电助攻,《香肠派对》百亿好友关系实现毫秒级查询