上QQ阅读APP看书,第一时间看更新
4.3.9 translate()方法
translate()方法的语法格式如下:
str.translate(table[, deletechars])
此语法中,str代表指定检索的字符串;table代表翻译表,翻译表通过maketrans()方法转换而来;deletechars代表字符串中要过滤的字符列表。返回结果为翻译后的字符串。
translate()方法根据参数table给出的表(包含256个字符)转换字符串的字符,将要过滤掉的字符放到del参数中。
该方法的使用示例如下:
>>> intab='adefs' >>> outtab='12345' >>> trantab=str.maketrans(intab,outtab) >>> st='just do it' >>> print('st调用translate方法后:',st.translate(trantab)) st调用translate方法后: ju5t 2o it
由输出结果可以看到,使用translate()方法后,有几个字符被替换成数字了,被替换的字符既在intab变量中,又在st变量中,如图4-1所示。对于既在intab又在st中的字符,使用outtab中对应的字符替换。由图4-1可知,intab中的字符d和s对应outtab中的字符2和5,所以最后输出字符串中的d被替换成2、s被替换成5,这样就得到了最后我们看到的字符串js5t 2o it。
图4-1 字符串对应关系
translate()方法和replace()方法一样,可以替换字符串中的某些部分。但和replace()方法不同的是,translate()方法只处理单个字符,而translate()方法的可以同时进行多个替换,有时比replace()方法的效率高很多。
在实际项目应用中,translate()方法的使用属于比较高级的应用,学有余力的读者可以多做一些深入了解。