1. 概述
Python translate() 方法根据 maketrans() 方法给出的字符映射转换表转换字符串中的字符。
2. 语法
translate() 方法语法:
Python3中:
S.translate(table)
Python2中:
S.translate(table[,delchars])
参数
- table – 字符映射转换表表,是通过 maketrans() 方法转换而来的。
- delchars – 可选参数,表示要删除的字符组成的字符串。
返回值
- 返回根据 maketrans() 方法给出的字符映射转换表转换后的字符串,如果给出delchars参数,则会删除这些字符然后进行转换。
3. Python2 、Python3区别
- 注意python2.0以后的版本, 对于字符串查找、替换、大小写转变等常用方法,string模块不需要再调用了,它的方法改成用S.method()的形式调用,只要变量S是一个字符串对象就可以可以直接使用它的函数方法,不需要额外的 import 再导入。
- maketrans() 方法在python2中需要充string模块中导入,在Python中可以直接使用,如:
s = 'abcdef'
table = s.maketrans('bc','BC')
s.translate(table)
- 官方文档
Python3
Python2
4. 用法
Python3
intab = "opqrst"
outtab = "567890"
deltab = "thon"
trantab1 = str.maketrans(intab, outtab) # 创建字符映射转换表
trantab2 = str.maketrans(intab, outtab, deltab) # 创建字符映射转换表,并删除指定字符(替换之前删除)
test = "maketrans function is different in Python2 and Python3! Wait and see!"
print(test.translate(trantab1))
print(test.translate(trantab2))
输出:
make08an9 func0i5n i9 diffe8en0 in Py0h5n2 and Py0h5n3! Wai0 and 9ee!
make8a9 fuci i9 diffe8e i Py2 ad Py3! Wai ad 9ee!
Python2
import string # 导入string模块
intab = "opqrst"
outtab = "567890"
deltab = "thon"
trantab = string.maketrans(intab, outtab) # 创建字符映射转换表
test = "maketrans function is different in Python2 and Python3! Wait and see!"
print(test.translate(trantab))
print(test.translate(trantab, deltab)) # Python2中,删除指定字符在 translate() 方法中
输出:
make08an9 func0i5n i9 diffe8en0 in Py0h5n2 and Py0h5n3! Wai0 and 9ee!
make8a9 fuci i9 diffe8e i Py2 ad Py3! Wai ad 9ee!