Python3字符串替换replace(),translate(),re.sub()

Python3字符串替换replace(),translate(),re.sub()Python3的字符串替换,这里总结了三个函数,和`translate()re.sub()`replace()python中的方法把字符串中的old(旧字符串)替换成new(新字符串

大家好,又见面了,我是你们的朋友全栈君。

Python3的字符串替换,这里总结了三个函数,replace()translate()re.sub()

replace()

python 中的 replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次

str.replace(old, new[, max])

a = 'Hello,world. ByeBye!'
print(a.replace('l','Q'))
print(a.replace('abcdefghi','0123456789'))
print(a.replace('world','apple'))
HeQQo,worQd. ByeBye!
Hello,world. ByeBye!
Hello,apple. ByeBye!

可见,replace()函数可以替换string中的单个字符,也可以替换连续的字符,但无法生成字符替换映射表

敲黑板!

pandas 里面也有一个replace()函数,其用法更加多样化。比如,可以加入一个字典,用于替换对不同的值进行替换。

s = pd.Series([0, 1, 2, 3, 4])
s.replace({0:'a',1:'b'})
Out[2]: 
0    a
1    b
2    2
3    3
4    4
dtype: object

translate()

translate()函数也是python自带。与replace() 函数不同的是,这里使用str.maketrans函数来创建一个表,它可以使用各种参数,但是需要三个Arguments。

str.maketrans('','',del)

第一个参数为被替换的字符,第二个参数为替换的字符,第三个参数为要删除的字符

import string
a = 'Hello,world. ByeBye!'
remove = string.punctuation
table = str.maketrans('abcdefgh','01234567',remove)
print(a.translate(table))
H4lloworl3 By4By4

string.punctuation返回所有的标点符号,更多字符串常量如下图:
<span role="heading" aria-level="2">Python3字符串替换replace(),translate(),re.sub()

str.maketrans()的前两个参数相当于一个映射表,如上述结果,所有的'e'被替换成了'4'

第三个参数为要删除的字符,上述例子删除了所有的标点符号,如果要删除的字符还要加上空格的话,则可以这样:

table = str.maketrans('abcdefgh','01234567',remove+' ')
print(a.translate(table))
H4lloworl3By4By4

re.sub()

这个是re库里的函数,其原型为re.sub(pattern, repl, string, count)

第一个参数为正则表达式需要被替换的参数,第二个参数是替换后的字符串,第三个参数为输入的字符串,第四个参数指替换个数。默认为0,表示每个匹配项都替换。

import re
a = 'Hello,world. ByeBye!'
print(re.sub(r'[A-Z]', '8', a))
8ello,world. 8ye8ye!

上述例子是把所有的大写字母替换成8,下述表示只替换前2个这样的大写字母。

print(re.sub(r'[A-Z]', '8', a, 2))
8ello,world. 8yeBye!
  • Reference:
  1. Python3 replace()方法
  2. NLP-python3 translate()报错问题-TypeError: translate() takes exactly one argument (2 given
  3. Python 标准库笔记:string模块
  4. 关于python 的re.sub用法
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/155970.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Druid连接池的意义以及使用

    Druid连接池的意义以及使用建立数据库连接耗时耗费资源,一个数据库服务器能够同时建立的连接数也是有限的,在大型的Web应用中,可能同时会有成百上千的访问数据库的请求,如果Web应用程序为每一个客户请求分配一个数据库连接,将导致性能的急剧下降。数据库连接池的意义在于,能够重复利用数据库连接(有点类似线程池的部分意义),提高对请求的响应时间和服务器的性能。连接池中提前预先建立了多个数据库连接对象,然后将连接对象保存到连接池中…

    2022年7月23日
    6
  • CEGUI编译

    CEGUI编译CEGUI版本0.8.2依赖库使用cegui-deps-0.8.x-src由于我是要在Ogre中使用CEGUI做界面,所以渲染引擎使用Ogre,编译的Ogre版本1.9CEGUI和cegui-deps-0.8.x-src都能通过cmake创建vs项目先编译cegui-deps-0.8.x-src,使用cmake生成vs解决方案,因为不依赖别的库,所以不需要怎么配置,直接co

    2022年7月24日
    9
  • 如何让PPT转成PDF后占满整个页面

    如何让PPT转成PDF后占满整个页面将 PPT 转成 PDF 格式是我们日常经常会使用的 但有时候转换后的 PDF 文件总觉得尺寸不对 是怎么回事呢 要怎么转换才能让保存的 PDF 图片可铺满整个页面呢 首先我们要进行分辨确实是 PDF 文档页面尺寸不对 两侧或上下有空白 还是我们打开 PDF 的页面比例不对呢 可以将 PDF 的页面比例调整到 100 也就是实际大小再查看 如果仍不是我们想要的效果如下图中的图 1 则可进行下一步设置 其中最简单的方法则是利用 PPT 转 PDF 的其中一种方式虚拟打印 我们在打印时 在打印设置中将 布局 中的打印方向调整为横向 并将页面尺寸

    2025年9月14日
    0
  • linux wifi驱动框架_嵌入式Linux驱动开发教程

    linux wifi驱动框架_嵌入式Linux驱动开发教程对于SDIO接口的wifi,首先,它是一个sdio的卡的设备,然后具备了wifi的功能,所以,注册的时候还是先以sdio的卡的设备去注册的。然后检测到卡之后就要驱动他的wifi功能了,显然,他是用sdio的协议,通过发命令和数据来控制的。下面先简单回顾一下SDIO的相关知识:一、SDIO相关基础知识解析1、SDIO接口    SDIO故名思义,就是SD的I/O接口(in

    2022年10月3日
    2
  • navigator.appVersion的值_你使用的是netscape浏览器

    navigator.appVersion的值_你使用的是netscape浏览器来源:https://developer.mozilla.org/zh-CN/docs/Web/API/NavigatorID/appName英文:  TheNavigatorID.appNamepropertyreturnsthenameofthebrowser.TheHTML5specificationalsoallowsanybrowsertoreturn”Netscape”here,forcompatibilityreasons.Note:Do.

    2022年9月12日
    4
  • Django(44)drf序列化源码分析[通俗易懂]

    Django(44)drf序列化源码分析[通俗易懂]序列化与反序列化一般后端数据返回给前端的数据格式都是json格式,简单易懂,但是我们使用的语言本身并不是json格式,像我们使用的Python如果直接返回给前端,前端用的javascript语言是识

    2022年7月31日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号