文档章节

python 字符串的translate方法

jackliu8722
 jackliu8722
发布于 2012/07/12 14:06
字数 401
阅读 4293
收藏 3

        最近在学习Python cookbook,遇到字符串的translate方法,发现功能很强大,但有点难以理解,于是在网上查阅资料和官方文档,记下自己的理解,有误的地方,请多多指教。

        translate的用法如下:

        bstr = astr.translate(strtable,delete)

        astr是一个需要被转换的字符串,strtable是一个翻译表,delete包含的字符在astr中需要被移除,移除后剩下的字符经过翻译表得到bstr。

        翻译表是什么呢?翻译表是通过maketrans方法转换而来,其原型如下:

        string.maketrans(instr,outstr)  返回一个翻译表

        instr中的字符是需要被outstr中的字符替换,而且instr和outstr的长度必须相等,返回的翻译表的长度必须是256.如下面的例子:

        

instr = 'abc'
outstr = '123'
table = string.maketrans(instr,outstr)

      则在table中,原本存储字符a,b,c的位置分别换成了1,2,3,maketrans的作用就是这样,还可以理解吧

      得到翻译表之后,然后就用translate方法进行翻译,看下面几个例子,就容易理解了。

      例子1:

>>> import string
>>> instr = ''
>>> outstr = ''
>>> table = string.maketrans(instr,outstr)
>>> astr = 'abcdefg-123'
>>> bstr = astr.translate(table,'123')
>>> bstr
'abcdefg-'
>>>


     从例1可以看出,我们的翻译表没有经过映射,但在调用translate时,把astr中的字符1,2,3 给删除了,动手试试。

     例2:

>>> import string
>>> instr = 'abcde'
>>> outstr = '12345'
>>> table = string.maketrans(instr,outstr)
>>> astr = 'abcdefg-123'
>>> bstr = astr.translate(table,'123')
>>> bstr
'12345fg-'
>>>

      不用多解释,如果还没明白的话,赶快动手试试吧,实践是检验真理的唯一标准。


© 著作权归作者所有

上一篇: Ubuntu 安装gevent
下一篇: Ubuntu 安装gevent
jackliu8722
粉丝 11
博文 2
码字总数 656
作品 0
朝阳
私信 提问
Python 字符串方法详解

Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息。 在编程中,几乎90% 以上的代码...

索隆
2012/04/24
182
0
Django 国际化实例及原理分析

当 Web 服务搭建好以后,可以接收来自全球不同国家用户访问。这样就要求开发人员调整软件,使之能适用于不同的语言,即国际化和本地化。国际化 -- Internationalization,i 和 n 之间有 18 个...

红薯
2011/02/03
5.5K
9
Python 字符串方法详解

Python 字符串方法详解 本文最初发表于赖勇浩(恋花蝶)的博客(http://blog.csdn.net/lanphaday),如蒙转载,敬请保留全文完整,切勿去除本声明和作者信息。 在编程中,几乎90% 以上的代码...

彭博
2012/03/02
2.7K
1
python cookbook 文本

1.1每次处理一个字符:利用for和列表综合以及map,reduce,filter; 1.2字符和字符值之间的转换:利用ord,chr,unichr函数; 例:print map(ord, 'ciao') 一句话实现逐词反转:revwords = ' ...

索隆
2012/05/19
81
0
请教:Python字符串替换的一个问题

今天上网看到有人贴出来一个Python中字符串替换的函数replace_words。大意是随便一个txt文件,用Python读取之后,可以用自定义的dictionary,把所有的key替换成value. def replace_words(te...

Fitz999
2015/01/09
1K
3

没有更多内容

加载失败,请刷新页面

加载更多

微服务架构一直火,为什么服务化要搞懂?

微服务架构,这 5 年左右一直被认可,是软件架构的未来方向。需要大家理解的是,为什么需要服务化。比如微服务架构对企业来说,带来什么价值?有啥弊端? 这里浅谈一下微服务架构,主要还是在...

泥瓦匠BYSocket
33分钟前
3
0
总结:单机与分布式

传统计算方案演变 1、单机并行运算 1,打开数据源 2,统计出有多少个文件。 3,为每个文件执行相同的统计命令 4,等待所有命令执行成功。 5,合并统计后结果输出或执行进一步统计 2、分布式并...

浮躁的码农
44分钟前
5
0
关于怎么解决CENTOS7没有ETH0网卡这个问题

CentOS7系统安装完毕之后,输入ifconfig命令发现没有eth0,不符合我们的习惯。而且也无法远程ssh连接。 1.进入目录/etc/sysconfig/network-scripts/ 2.将文件ifcfg-ens33重命名为ifcfg-eth0;...

无名氏的程序员
50分钟前
5
0
HTML5 Web Storage 存储介绍

Web Storage是HTML5 API提供一个新的重要的特性; 最新的Web Storage草案中提到,在web客户端可用html5 API,以Key-Value形式来进行数据持久存储; 目前主要的浏览器已经支持该功能: 常见的...

前端老手
59分钟前
5
0
安装mxnet出现的错误

我出现下面的错误:是因为我前面的安装步骤都正确,只是这一步出现错误,sudo python setup.py install 其实我看了下我默认的python是3.6,是大于3.5 ,改为sudo python3 setup.py install就...

南桥北木
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部