This question already has answers here:
Right-to-left string replace in Python?
(7个答案)
5年前关闭。
从右边开始,如何string.replace?
我可以从左边开始。
或使用
从右边,我可以做:
但是,从右边开始,还有其他替代方法吗?
因此,我的建议是第二种方法,它似乎要快得多。话虽如此,无论您选择哪种方式,都在告诉
希望这可以帮助!
(7个答案)
5年前关闭。
从右边开始,如何string.replace?
我可以从左边开始。
>>> x = 'foo bar bar'
>>> x.replace(' ', ' X ', 1)
'foo X bar bar'
或使用
re.sub
:>>> import re
>>> re.sub(' ', ' X ', x, 1)
'foo X bar bar'
从右边,我可以做:
>>> x = 'foo bar bar'
>>> x[::-1].replace(' ', ' X ', 1)[::-1]
'foo bar X bar'
但是,从右边开始,还有其他替代方法吗?
最佳答案
首先,我认为您的做法还可以。 Oneliner,漂亮的pythonic。
注释(Right-to-left string replace in Python?)中建议的问题提供了几个有用的答案,值得衡量。
一种是您采用的相同方法:x[::-1].replace(' ', ' X ', 1)[::-1]
,另一种是使用rsplit
和join
。
我分析了这两个,这就是我得到的输出:
$python -mtimeit -s "s = 'foo bar bar'" "s[::-1].replace(' ', ' X ', 1)[::-1]"
1000000 loops, best of 3: 1.18 usec per loop
$python -mtimeit -s "s = 'foo bar bar'" "' X '.join(s.rsplit(' ',1))"
1000000 loops, best of 3: 0.8 usec per loop
因此,我的建议是第二种方法,它似乎要快得多。话虽如此,无论您选择哪种方式,都在告诉
# this is right replacing!
旁加一个注释,因为哪种方式都不清楚代码的作用:)希望这可以帮助!
关于python - 从右边开始,如何string.replace? -python ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23317132/
10-15 01:57