str.translate 按表转换
文档描述如下:
help(str.translate)
Help on method_descriptor:
translate(self, table, /)
Replace each character in the string using the given translation table.
table
Translation table, which must be a mapping of Unicode ordinals to
Unicode ordinals, strings, or None.
The table must implement lookup/indexing via __getitem__, for instance a
dictionary or list. If this operation raises LookupError, the character is
left untouched. Characters mapped to None are deleted.
返回原字符串的副本,其中每个字符按给定的转换表进行映射。转换表必须是一个使用 __getitem__()
来实现索引操作的对象,通常为 mapping 或 sequence。当以 Unicode 码位序号(整数)为索引时,转换表对象可以做以下任何一种操作:返回 Unicode 序号或字符串,将字符映射为一个或多个字符;返回 None,将字符从结果字符串中删除;或引发 LookupError 异常,将字符映射为其自身。
ord('p'),ord('C')
(112, 67)
'python'.translate({112:67})
'Cython'
'python'.translate({112:'Cp'})
'Cpython'
'python'.translate({112:None})
'ython'
你可以使用 str.maketrans() 基于不同格式的字符到字符映射来创建一个转换映射表。
table = str.maketrans('pto','123')
'python'.translate(table)
'1y2h3n'