python-3.x 什么时候使用哪一个?

hof1towb  于 2022-12-05  发布在  Python
关注(0)|答案(1)|浏览(106)

什么时候和为什么要用前者代替后者,反之亦然?
有些人为什么使用前者,有些人为什么使用后者,目前还不完全清楚。

fwzugrvs

fwzugrvs1#

它们有不同的用途。
translate只能将单个字符替换为任意字符串,但一个调用可以执行多个替换。它的参数是一个特殊的表,可以将单个字符Map为任意字符串。
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'

相关问题