何时以及为何使用前者代替后者,反之亦然?
尚不清楚为什么有些人使用前者,为什么有些人使用后者。
答案 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'