str.translate vs str.replace-何时使用哪个?

时间:2019-05-30 12:40:42

标签: python python-3.x replace

何时以及为何使用前者代替后者,反之亦然?

尚不清楚为什么有些人使用前者,为什么有些人使用后者。

1 个答案:

答案 0 :(得分:3)

它们有不同的用途。

translate只能用任意字符串替换单个字符,但是单个调用可以执行多个替换。它的参数是一个特殊的表,该表将单个字符映射到任意字符串。

replace只能替换单个字符串,但是该字符串可以具有任意长度。

>>> table = str.maketrans({'f': 'b', 'o': 'r'})
>>> table
{102: 'b', 111: 'r'}
>>> 'foo'.translate(table)
'brr'
>>> 'foo'.translate(str.maketrans({'fo': 'ff'}))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: string keys in translate table must be of length 1
>>> 'foo'.replace('fo', 'ff')
'ffo'