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)相关推荐

  1. JS中的call()方法和apply()方法用法总结

    1. 每个函数都包含两个非继承而来的方法:call()方法和apply()方法. 2. 相同点:这两个方法的作用是一样的. 都是在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖 ...

  2. python 推迟运行_一文看懂Python的time模块sleep()方法和strftime()方法

    概述 今天主要介绍一下Python的time sleep()方法和strftime()方法. 一.Python time sleep()方法 Python time sleep() 函数推迟调用线程的 ...

  3. JS服务器端开发基础篇(Array.slice方法和splice方法)

    Array.slice方法和splice方法在众多的JS数组中属于比较复杂的一个方法,而且容易记混.搜索网络上很多资料都没有发现系统的总结.特别归纳如下,不完全处还希望各位批评指正.  一.slice ...

  4. Loader的load方法和loadBytes方法LoaderContext参数

    (1)在看代码的时候还发现一个以前没有这么注意的问题,也mark一下. 关于Loader的load方法和loadBytes方法LoaderContext参数的问题.. 要加载某个SWF到自己的安全域内 ...

  5. ThinkPHP 中M方法和D方法的具体区别

    M方法和D方法的区别 ThinkPHP 中M方法和D方法都用于实例化一个模型类,M方法 用于高效实例化一个基础模型类,而 D方法 用于实例化一个用户定义模型类. 使用M方法 如果是如下情况,请考虑使用 ...

  6. asp.net TemplateField模板中的Bind方法和Eval方法

    TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现.以下是Bind方法的格式,Eval的格式也是和Bind一样的. Bind("列 ...

  7. hashcode()方法和equals()方法

    一.hashcode()方法和equals()方法的介绍 Java的基类Object提供了一些方法,其中equals()方法用于判断两个对象是否相等,hashCode()方法用于计算对象的哈希码.eq ...

  8. 并发基础篇(六):线程Thread类的start()方法和run()方法

    点个赞,看一看,好习惯!本文 GitHub https://github.com/OUYANGSIHAI/JavaInterview 已收录,这是我花了 3 个月总结的一线大厂 Java 面试总结,本 ...

  9. 请简述一下线程的sleep()方法和yield()方法的区别?

    请简述一下线程的sleep()方法和yield()方法的区别? ①sleep()方法给其他线程机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会. yield()方法只会给相同优先级或更高优 ...

最新文章

  1. 2021技术突破 MIT发布
  2. BZOJ 2287 【POJ Challenge】消失之物
  3. [bzoj2527][Poi2011]Meteors_整体二分_树状数组
  4. idea自定义快捷鍵
  5. Android GridView LruCache
  6. 电力系统服务器故障预案,电网预案推演系统及电网预案推演方法
  7. leetcode 20. 有效的括号 (python)
  8. 动态列之函数实现动态列
  9. SPSS作业-检验两组数据有无显著
  10. Python求二次方程根
  11. 【光模块专题】最常见的几种光模块光纤接口类型
  12. w ndows无法完成格式化,windows无法完成格式化,小编教你解决windows无法完成格式化U盘...
  13. 网卡82546驱动linux,Linux e1000e网卡驱动
  14. 为什么编程是独一无二的职业
  15. 树莓派写卡后连接诸多问题及方法
  16. 以太网数据包速率计算方法
  17. 简述神经传导的电学原理,神经网络理论及其应用
  18. android 三种定位方式 介绍
  19. 技术分享:浅谈滴滴派单算法
  20. 近视眼手术之后计算机专业,近视眼手术后电脑族护眼7种方式

热门文章

  1. 大学社团管理系统-毕业论文
  2. air英语怎么读_空气英语怎么读声音
  3. 计算机文件恢复快捷键,电脑快捷键删除的文件怎么找回
  4. HTML练习表格的跨行跨列操作
  5. apollo系列之apollo2 mcu开发(基础篇)之1.3-解析编译生成的IAR中的map文件
  6. IDEA导入Spring源码缺失spring-cglib-repack-3.2.6.jar和spring-objenesis-repack-2.6.jar
  7. 金融大数据分析——VAR的脉冲响应图的整齐排列
  8. VMware安装的虚拟机启动后一直黑屏没反应
  9. 中睿天下当选信通院网络安全卓越合作伙伴
  10. 推荐几个 VS Code 扩展、主题和字体