Python translator使用实例

yipeiwu_com6年前Python基础

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') 
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素数筛选法浅析

原理:   素数,指在一个大于1的自然数中,除了1和此整数自身外,不能被其他自然数整除的数。在加密应用中起重要的位置,比如广为人知的RSA算法中,就是基于大整数的因式分解难题,寻找两个超...

Python入门篇之编程习惯与特点

1.代码风格 在Python中,每行程序以换行符代表结束,如果一行程序太长的话,可以用“\”符号扩展到下一行。在python中以三引号(""")括起来的字符串,列表,元组和字典都能跨行...

pandas中去除指定字符的实例

pandas中去除指定字符的实例

例表: 假如想要去掉表中的‘#',‘;'而且以‘#'和‘;'为分割线切割数据: #将dfxA_2的每一个分隔符之间的数据提出来 col1=dfxA_2['travel_seq']...

图文详解python安装Scrapy框架步骤

图文详解python安装Scrapy框架步骤

python书写爬虫的一个框架,它也提供了多种类型爬虫的基类,scrapy用途广泛,可以用于数据挖掘、监测和自动化测试 首先要先安装python 安装完成以后,配置一下环境变量。 还需...

对python while循环和双重循环的实例详解

废话不多说,直接上代码吧! #python中,while语句用于循环执行程序,即在某个条件下,循环执行某段程序,以处理需要重复处理的相同任务。 #while是“当型”循环结构。 i=...