官方文档
static str.maketrans(x[, y[, z]])
This static method returns a translation table usable for str.translate().
If there is only one argument,
it must be a dictionary mapping Unicode ordinals (integers) or characters (strings of length 1) to Unicode ordinals,
strings (of arbitrary lengths) or None. Character keys will then be converted to ordinals.
If there are two arguments,
they must be strings of equal length,
and in the resulting dictionary,
each character in x will be mapped to the character at the same position in y.
If there is a third argument, it must be a string, whose characters will be mapped to None in the result.
语法
i.translate(str.maketrans(x, y, z)
参数
- x–>在字符串中所需识别(匹配)的值
- y–>将要填入到所匹配值的位置的新值。新值的长度需与原值相等。
x、y为配套使用,需同时存在,可以为空
- z–>需要删除的值
示例
import string
i = 'iiiiiloveyou'
i.translate(str.maketrans('','','i')
print(i)
'loveyou'
---
i.translate(str.maketrans('i','y')
print(i)
'yyyyyloveyou'
与split()区别
如果将子字符串比喻为火车的一节节车厢。
split()
对字符串的处理可以理解为:将一节节车厢之间的链接环拿走,各个车厢变成一个个单独的个体,而非一个整体,也就是为什么输出不是一个字符串,而是一个列表的原因。
string模块则是将车厢之间的链接环先断开,再将需要的车厢重现链接成为一辆火车,而不是单独的个体。因此输出结果为一个字符串。