关于maketrans方法和translate方法一起使用的说明(从字符串中删除某些字符,请区别于replace)
str.marktrans方法:生成一个dict表。对应翻译表(asc码格式),
如:t = str.maketrans(‘abcdefghi’, ‘123456789’,“abfgjk”)
返回:{97: None, 98: None, 99: 51, 100: 52, 101: 53, 102: None, 103: None, 104: 56, 105: 57, 106: None, 107: None},
说明:比如第一个参数里面的第一个字符 asc码97的字符(a)对应为None(本来应该对应于第二个参数中的数字1,但是由于被第三个参数过滤了,所以对应成为了None,而第一个参数中的第三个字符asc码99的字符(c)对应的为第二个参数里面的数字3(数字3的asc码是51)…
translate方法:就是把原始str中每个字符用对照翻译表中字符对应替换掉,对应None的就表示删除
def test_maketrans_translate():# maketrans方法返回类型:字典,基本功能就是将字符串每个字符转为asc码# 如果提供一个参数:这个参数就必须是字典,方法将字典的key转换成asc码后返回。a=str.maketrans({1:'b',3:'d'})print (type(a),a) #< class 'dict'> {1: 'b', 3: 'd'}a = str.maketrans({'1': 'b', '3': 'd'})print(type(a), a) # <class 'dict'> {49: 'b', 51: 'd'}# 如果提供二个参数:两个参数都必须是字符串,而且要长度一样。b=str.maketrans('abcdefg','1234567')print(type(b),b) # <class 'dict'> {97: 49, 98: 50, 99: 51, 100: 52, 101: 53, 102: 54, 103: 55}# b = str.maketrans('abcdefg', '12345')# print(type(b), b) # 报错,the first two maketrans arguments must have equal length(前两个参数必须一样长)# 如果提供三个参数:# 第一、二个参数和上面一样# 第三个参数:需要设置为None的字符。# 网上多会说是过滤之类的,其实简单说就是:# 如果第一个参数中有第三个参数中的字符就忽略,然后将第三个参数中的所有字符直接对应为None# 通常使用这个参数都是为 提供给translate函数从某字符串中删除这个参数中包含的特定字符用。c = str.maketrans('abcdefghi', '123456789',"abfgjk")print("2=", type(c), c) # <class 'dict'> {97: None, 98: None, 99: 51, 100: 52, 101: 53, 102: None, 103: None, 104: 56, 105: 57, 106: None, 107: None}# 本来a、b、f、g 字符对应的是1、2,6,7,但是由于第三参数abfg 定义了这4个字符被忽略,因此结果中出现了97:None,98:None...102:None,103:None# 同时在第三个参数中"jk"还有两个字符,因此结果中还多出了 106: None, 107: Nonec= str.maketrans('ab', 'AB', "b")print("3=" ,type(c), c) # <class 'dict'> {97: 65, 98: None} # <class 'dict'> {97: 65, 98: None}# 下面演示 translate 方法# translate方法返回:字符串,实际就是把原始str中每个字符用对照表中字符对应替换,对照表中None的字符实际效果就是被删除了# str.translate(table[, deletechars]);# 参数:# table -- 对照翻译表,翻译表是通过maketrans方法转换而来。 # deletechars -- 字符串中要过滤的字符列表。import strings1 = "abcdefg"# 更换字符t1= str.maketrans('abc', 'ABC',) # 生成了一个对照翻译表,说明a换成A,b换成B...print("4 替换:"+ s1+"->",s1.translate(t1)) # abcdefg-> ABCdefg# 删除字符(实际就是生成 字符对应None的翻译表)t1=str.maketrans("","","abc") #实际生成了{97:None,98:None,99:None}的对应翻译表print("5 删除:"+ s1+"->",s1.translate(t1)) # 删除:abcdefg-> defg# 实战:删除句子中的标点s1 = "how old are you?I'm 10 years old." # 句子中有多个标点,需要去除# 第一步:生成需要删除标点对应None的翻译表,结果为:# <class 'dict'> {33: None, 34: None, 35: None, 36: None ...}t1=str.maketrans("","",string.punctuation) # string.punctuation含各种标点的字符串(实际就是字符串:!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ ))# 第二步:删除句子中的标点print("原始句子:" + s1) # 原始句子:how old are you?I'm 10 years old.print("删除标点:" + s1.translate(t1) ) # 删除标点:how old are youIm 10 years oldif __name__ == "__main__":test_maketrans_translate()
关于maketrans方法和translate方法一起使用的说明(从字符串中删除某些字符,请区别于replace)相关推荐
- JS中的call()方法和apply()方法用法总结
1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...
- python 推迟运行_一文看懂Python的time模块sleep()方法和strftime()方法
概述 今天主要介绍一下Python的time sleep()方法和strftime()方法. 一.Python time sleep()方法 Python time sleep() 函数推迟调用线程的 ...
- JS服务器端开发基础篇(Array.slice方法和splice方法)
Array.slice方法和splice方法在众多的JS数组中属于比较复杂的一个方法,而且容易记混.搜索网络上很多资料都没有发现系统的总结.特别归纳如下,不完全处还希望各位批评指正. 一.slice ...
- Loader的load方法和loadBytes方法LoaderContext参数
(1)在看代码的时候还发现一个以前没有这么注意的问题,也mark一下. 关于Loader的load方法和loadBytes方法LoaderContext参数的问题.. 要加载某个SWF到自己的安全域内 ...
- ThinkPHP 中M方法和D方法的具体区别
M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...
- asp.net TemplateField模板中的Bind方法和Eval方法
TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现.以下是Bind方法的格式,Eval的格式也是和Bind一样的. Bind("列 ...
- hashcode()方法和equals()方法
一.hashcode()方法和equals()方法的介绍 Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码.eq ...
- 并发基础篇(六):线程Thread类的start()方法和run()方法
点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...
- 请简述一下线程的sleep()方法和yield()方法的区别?
请简述一下线程的sleep()方法和yield()方法的区别? ①sleep()方法给其他线程机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会. yield()方法只会给相同优先级或更高优 ...
最新文章
- 2021技术突破 MIT发布
- BZOJ 2287 【POJ Challenge】消失之物
- [bzoj2527][Poi2011]Meteors_整体二分_树状数组
- idea自定义快捷鍵
- Android GridView LruCache
- 电力系统服务器故障预案,电网预案推演系统及电网预案推演方法
- leetcode 20. 有效的括号 (python)
- 动态列之函数实现动态列
- SPSS作业-检验两组数据有无显著
- Python求二次方程根
- 【光模块专题】最常见的几种光模块光纤接口类型
- w ndows无法完成格式化,windows无法完成格式化,小编教你解决windows无法完成格式化U盘...
- 网卡82546驱动linux,Linux e1000e网卡驱动
- 为什么编程是独一无二的职业
- 树莓派写卡后连接诸多问题及方法
- 以太网数据包速率计算方法
- 简述神经传导的电学原理,神经网络理论及其应用
- android 三种定位方式 介绍
- 技术分享:浅谈滴滴派单算法
- 近视眼手术之后计算机专业,近视眼手术后电脑族护眼7种方式
热门文章
- 大学社团管理系统-毕业论文
- air英语怎么读_空气英语怎么读声音
- 计算机文件恢复快捷键,电脑快捷键删除的文件怎么找回
- HTML练习表格的跨行跨列操作
- apollo系列之apollo2 mcu开发(基础篇)之1.3-解析编译生成的IAR中的map文件
- IDEA导入Spring源码缺失spring-cglib-repack-3.2.6.jar和spring-objenesis-repack-2.6.jar
- 金融大数据分析——VAR的脉冲响应图的整齐排列
- VMware安装的虚拟机启动后一直黑屏没反应
- 中睿天下当选信通院网络安全卓越合作伙伴
- 推荐几个 VS Code 扩展、主题和字体