利用字符串的str.translate函数,也可以进行简洁的替换,str.maketrans,此静态方法返回用于 str.translate的翻译表。
str.maketrans参数解释
- 如果只有一个参数,则必须是字典映射Unicode 序形(整数)或字符(长度 1 字符串)到 Unicode 序号、字符串(任意长度)或无。然后,字符键将转换为普通键。
- 如果有两个参数,它们必须是相等长度的字符串,在生成的字典中,x 中的每个字符将映射到 y 中的相同位置的字符。
- 如果存在第三个参数,则必须是字符串,其字符将映射为结果中的"无"。
str.translate(str.maketrans(",.?!:;"," (6个空格) "))该代码也能达到与多重replace同样的结果,满足替换要求。
import string
str.translate(str.maketrans(",.?!:;"," ")) #两个参数
str.translate(str.maketrans('', '', string.punctuation)) #三个参数