python替换文本

简单介绍一下Python中替换文本的方式。
replace / retranslate

replace / re

replace相信大家比较熟悉,我们简单的给大家两个示例。分别为:单一替换和批量替换

1. 单一替换

replace:

data = "test for replace"
data.replace("test", "")
>>>  for replace

re

data = "test for re"
re.sub("test ", "", data)
>>> for re

replace的速度是优于re的速度的。所以大家尽量用replace.

2. 批量替换

现在我有一堆数据需要替换,该怎么写呢?我们介绍一种比较优雅的方法:
下面的示例需要替换:[(|)|\n|']---'|'为分割表示。
replace:

replace_string = "()\n'"
replace_dict = {k: "" for k in replace_string}
data = "(good's way\n now is better than never)"
for k, v in replace_dict.items():
    data = data.replace(k, v)
print(data)
>>> goods way now is better than never

re:

replace_string = "()\n'"
replace_pattern = f"[{'|'.join(replace_string)}]"
data = "(good's way\n now is better than never)"
s = re.sub(replace_pattern, "", data)
>>> goods way now is better than never

translate

相信这个函数大家了解比较少,我们用刚才的例子进行举例:

replace_string = "()\n'"
translate_table = {ord(k): "" for k in replace_string}
data = "(good's way\n now is better than never)"
data.translate(translate_table)
>>> goods way now is better than never

大家需要注意的是:
translate必须用ord 或者 str.maketrans 来制作映射表,所以translate一般用于单字符替换。速度方面,如果需要替换的字符串太多的话,translate的速度是优于replace的,所以需要根据场景进行选择哦!

小Tip就到这里,希望你能有所收获,byebye~

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值