繁体   English   中英

替换字符串中最后一次出现的子字符串的方法更快?

[英]Which method is faster for replacing the last occurrence of a substring in a string?

我有一个str ,它是“S”和“C”的组合。 每个至少出现一次。

我想找到最后一次出现的“CS”并将其改为“SC”。

我有两种方法(到目前为止):

P = P[::-1].replace("SC", "CS", 1)[::-1]

P = P[:P.rfind("CS")] + "SC" + P[P.rfind("CS") + 2:]

哪条线可能更快? 另外,有没有更快的方法来实现我正在做的事情?

这是一种方式:

>>> s = 'CSsomethingSCSagainCSsomething'
>>> 'SC'.join(s.rsplit('CS', 1))
CSsomethingSCSagainSCsomething

语法

new_substring.join(str.rsplit(old_substring, occurance))

在我粗略的时机中,这比rsplit()join()解决方案rsplit() 20%:

head, _, tail = string.rpartition('CS')
new_string = f"{head}SC{tail}"

当然,我的确依赖于Python 3.6+。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM