简单介绍一下Python中替换文本的方式。 replace / re 和 translate
replace相信大家比较熟悉,我们简单的给大家两个示例。分别为:单一替换和批量替换。
replace:
data = "test for replace" data.replace("test", "") >>> for replacere
data = "test for re" re.sub("test ", "", data) >>> for rereplace的速度是优于re的速度的。所以大家尽量用replace.
现在我有一堆数据需要替换,该怎么写呢?我们介绍一种比较优雅的方法: 下面的示例需要替换:[(|)|\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 neverre:
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相信这个函数大家了解比较少,我们用刚才的例子进行举例:
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~