说起python的字符串替换我们可能会想到的就是使用 replace函数

比如有一段字符串 "这是简单替换",我们想把 "简单" 替换为 "复杂":

>>> s = "这是简单替换"
>>> s.replace("简单","复杂")
'这是复杂替换'

根据 replace 函数的设定,他只能处理一组映射关系的替换,所以在替换多组数据时我们可能要使用多个replace进行类似嵌套的操作,这在数据量大的情况下显得很鸡肋而且影响代码美观。

如 "101010" 使用替换的方法使之变成 "010101",也就是 "1" 和 "0" 互换,这时候的表达式可能会写:

>>> s = "101010"
>>> s.replace("1","a").replace("0","1").replace("a","0")
'010101'

上述操作虽然能达到目的,但是看起来效果很鸡肋,完全时靠 replace 进行的逐个替换,而且替换有交集时还得使用临时交换,当数据量很大时总不能写 N 个replace吧,那这时候就有了另一个比较简便的方法:

>>> s = "101010"
>>> trans = s.maketrans("1 0","0 1")
>>> s.translate(trans)
'010101'

关于 maketrans 方法

关于 translate 方法

在大量的替换处理中就会变得非常便捷

标签: none

添加新评论