Python 3.x 字符串:makestrans+translate函数

来源:互联网 发布:开淘宝手持身份证照片 编辑:程序博客网 时间:2024/06/04 19:40

1.str.maketrans(x[,y[,z]])
1)该静态函数返回可用于str.translate()方法的转换表;
2)如果只有一个参数,它必须是dict类型,键key为长度为1的字符(unicode字符码或者字符),值value为任意长度字符串或者None。键key对应的字符将被转换为值value对应的字符(串);如果有两个参数,他们长度必须相等,每一个x字符将被转换为对应的y字符。如果有第三个参数,其对应的字符将被转换为None。
3)改函数调用后返回一个字典

2.string1.translate(str.maketrans(x[,y[,z]]))
translate接收str.translate()生成的字典,
返回一个将字符串string1使用参数map转换后的字符串;具体是

3.例子:
1)使用一个dict参数,创建字符到字符的转换表(将s中a–>A,b–>B)
s = ‘abcxyz123’
m = {‘a’:’A’, ‘b’:’B’}
trans = str.maketrans(m) ===> {97: ‘A’, 98: ‘B’}
s.translate(trans) ====> ‘ABcxyz123’

2)使用一个dict参数,创建一个字符到多个字符的转换表(将s中a–>AAA,b–>BBB)
s = ‘abcxyz123’
m = {‘a’:’AAA’, ‘b’:’BB’}
trans = str.maketrans(m)===> {97: ‘AAA’, 98: ‘BBB’}
s.translate(trans) ====> ‘ABcxyz123’

3)使用一个dict参数,创建字符到None的转换表(用于过滤要删除的字符)
s = ‘abcxyz123’
m = {‘a’:None, ‘b’:None}
trans = str.maketrans(m) ===> {97:None, 98:None}
s.translate(trans) ====> ‘cxyz123’

4)使用两个参数,创建字符到字符的转换表
s = ‘abcxyz123’
trans = str.maketrans(‘abc’,’ABC’) ===> {97: 65, 98: 66, 99: 67}
s.translate(trans) ====> ‘ABCxyz123’

5)使用三个参数,创建字符到字符的转换表,并同时包含要过滤删除的字符表
s = ‘abcxyz123’
trans = str.maketrans(‘abc’,’ABC’,’23y04’) ===> {48: None, 50: None, 51: None, 52: None, 97: 65, 98: 66, 99: 67, 121: None}
s.translate(trans) ====> ‘ABCxz1’

s=’我是一个兵’
m={‘我’:’你’,’兵’:’流氓’}
s.translate(str.maketrans(m)) ===> ‘你是一个流氓’