什么时候和为什么要用前者代替后者,反之亦然?有些人为什么使用前者,有些人为什么使用后者,目前还不完全清楚。
fwzugrvs1#
它们有不同的用途。translate只能将单个字符替换为任意字符串,但一个调用可以执行多个替换。它的参数是一个特殊的表,可以将单个字符Map为任意字符串。replace只能替换单个字符串,但该字符串可以具有任意长度。
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'
1条答案
按热度按时间fwzugrvs1#
它们有不同的用途。
translate
只能将单个字符替换为任意字符串,但一个调用可以执行多个替换。它的参数是一个特殊的表,可以将单个字符Map为任意字符串。replace
只能替换单个字符串,但该字符串可以具有任意长度。