python文本 maketrans和translate
python文本 maketrans和translate
场景:
过滤字符串的某些字符,我们从例子出发
>>> tb=str.maketrans ('abc','123')
>>> 'abcd'.translate (tb)
'123d'
>>> 'abcd+++a+b+cd'.translate (tb)
'123d+++1+2+3d'
>>>
1.建立字符映射表,也就是maketrans方法所做的事情,它返回一个字符串的映射表,意思是:如果字符串里面出现a,那么它就会变成对应的1,如此类推,b->2,c->3
2.使用translate方法,将字符串里面的字符改掉
注意:
1.映射两遍的长度必须一致,不然报错,也就是说'abc'一定需要对于'123'或者'234'等,不能是'abc'对应'12',这个时候就报错
>>> tb=str.maketrans ('abc','12')
Traceback (most recent call last):
File "", line 1, in
tb=str.maketrans ('abc','12')
ValueError: the first two maketrans arguments must have equal length
>>>
2.还需要注意的是,字符串的translate方法只接受一个参数,而bytes的translate方法是可以接收两个参数,而且第二个参数可以快速实现删除方法
>>> bytes_tb = bytes.maketrans(b'abcd', b'ABCD')
>>> b'abcdefg'.translate (bytes_tb,b'a')
b'BCDefg'
>>>
下面列举一些translate的一些应用方法:(注意:为了快速实现删除,所以下面的方法都是用bytes的translate)
修改某些字符串:
>>> def AToB(seq,frm,to):
if len(frm)or len(frm)>len(to):return '映射字符长度不一致'
else:
bytes_tb = bytes.maketrans(frm,to)
return seq.translate (bytes_tb)
>>> AToB(b'abcd',b'a',b't1')
'映射字符长度不一致'
>>> AToB(b'abcd',b'a1',b't')
'映射字符长度不一致'
>>> AToB(b'abcd',b'a',b't')
b'tbcd'
>>>
删除某些字符串:
>>> def AToB(seq,delete):
return seq.translate (None,delete)
>>> AToB(b'abcd',b'a')
b'bcd'
>>>
保留某些字符:
>>> def AToB(seq,keep):
delete=seq.translate (None,keep)
return seq.translate (None,"font-family: Arial, Helvetica, sans-serif;">delete)
>>> AToB(b'abcd',b'a')
b'a'
>>>
python文本 maketrans和translate的更多相关文章
- string下的 maketrans和translate
在玩python challenge的时候发现一个比较有趣的函数所以记下来. 问题是这样的 g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amkn ...
- 算是休息了这么长时间吧!准备学习下python文本处理了,哪位大大有好书推荐的说下!
算是休息了这么长时间吧!准备学习下python文本处理了,哪位大大有好书推荐的说下!
- Python 文本解析器
Python 文本解析器 一.课程介绍 本课程讲解一个使用 Python 来解析纯文本生成一个 HTML 页面的小程序. 二.相关技术 Python:一种面向对象.解释型计算机程序设计语言,用它可以做 ...
- python 文本分类
python 文本分类 pyhton 机器学习 待续...
- python文本 字符串逐字符反转以及逐单词反转
python文本 字符串逐字符反转以及逐单词反转 场景: 字符串逐字符反转以及逐单词反转 首先来看字符串逐字符反转,由于python提供了非常有用的切片,所以只需要一句就可以搞定了 >>& ...
- python文本 拼接或合并字符串
python文本 拼接.合并字符串 场景: 拼接.合并字符串 在这个场景中,我们首先想到的当然是使用+或者+=将两个字符串连接起来 >>> a='a' >>> ...
- python文本 去掉字符串前后空格
python文本 去掉字符串前后空格 场景: 去掉字符串前后空格 可以使用strip,lstrip,rstrip方法 >>> a="abc".center (30 ...
- python文本 判断对象里面是否是类字符串
python文本 判断对象里面是否是类字符串 场景: 判断对象里面是否是类字符串 一般立刻会想到使用type()来实现 >>> def isExactlyAString(obj): ...
- python文本 单独处理每个字符的方法汇总
python文本 单独处理字符串每个字符的方法汇总 场景: 用每次处理一个字符的方式处理字符串 方法: 1.使用list(str) >>> a='abcdefg' >&g ...
随机推荐
- Linux学习笔记:wc查看文件字节数、字数、行数
Linux系统中的wc(Word Count)命令可以统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 若不指定文件名称,或是所给予的文件名为“-”,则wc指令会从标准输入设备读取数据. 语 ...
- Master和worker模式
让和hadoop的设计思想是一样的,Master负责分配任务和获取任务的结果,worker是真正处理业务逻辑的. 使用ConcurrentLikedQueue去承载所有的任务,因为会有多个worker ...
- dp入门题目
本文文旨,如题... 转载请注明出处... HDOJ 1176 免费馅饼 http://acm.hdu.edu.cn/showproblem.php?pid=1176 类似数塔,从底往上推,每次都是从 ...
- Web Api之Cors跨域以及其他跨域方式(三)
我们知道ajax不能跨域访问,但是有时我们确实需要跨域访问获取数据,所以JSONP就此诞生了,其本质使用的是Script标签,除JSONP以外还有另外实现跨域方式 一.手动实现JSONP跨域 1.首先 ...
- centos7 安装 supervisor
一.安装 supervisor yum install python-setuptools easy_install supervisor 如果easy_install不好使就从官方下载: wget ...
- Web API的几种调用方式
示例是调用谷歌短网址的API. 1. HttpClient方式: public static async void DoAsyncPost() { DateTime dateBegin = DateT ...
- js javascript 原型链详解
看了许多大神的博文,才少许明白了js 中原型链的概念,下面给大家浅谈一下,顺便也是为了巩固自己 首先看原型链之前先来了解一下new关键字的作用,在许多高级语言中,new是必不可少的关键字,其作用是为了 ...
- TI科学家谈浮点DSP未来发展
自十多年前浮点数字信号处理器(DSP)诞生以来,便为实时信号处理提供了算术上更为先进的备选方案.不过,定点器件至今仍是业界的主流.当然低成本是主要原因.定点DSP每器件产品的价格很低,这对大规 ...
- shell 转码BIG5 UTF8
BIG-5 轉 UTF-8 若要將一個文字檔從 BIG-5 編碼轉換為 UTF-8 編碼,可以執行: iconv -f BIG-5 -t UTF-8 big5.txt > utf8.txt 其中 ...
- springboot中使用JOIN实现关联表查询
* 首先要确保你的表和想要关联的表有外键连接 repository中添加接口JpaSpecificationExecutor<?>,就可以使用springboot jpa 提供的API了. ...