gpt4 book ai didi

python - 比 re.sub 更快(更 Pythonic)的解决方案?删除前缀(由许多相同的字符组成)

转载 作者:太空宇宙 更新时间:2023-11-04 08:59:20 33 4
gpt4 key购买 nike

我正在尝试从给定字符串中删除前缀,该字符串包含未知长度的连续“X”字符。在大多数情况下,此前缀的长度将达到数千个字符。我想到的第一个解决方案是使用正则表达式 -

str = re.sub(r'X*', '', str)

一个明显的替代(和更快)解决方案是遍历每个字符,直到它 不是 'X',并相应地切片,但这很笨重并且字符迭代看起来不像 Pythonic?

有人有什么建议吗?

提前致谢。

最佳答案

我会简单地使用 lstrip :

>>> import re
>>> a = "X"*1000+"Y"*10000
>>> %timeit re.sub(r'X*', '', a)
1000 loops, best of 3: 940 µs per loop
>>> %timeit a.lstrip("X")
100000 loops, best of 3: 3.04 µs per loop
>>> a.lstrip("X") == re.sub(r'X*', '', a)
True

请注意,如果字符串包含 不是 前缀一部分的 X,re.sub 调用将删除它们,因此它可能不是您想要的无论如何。

关于python - 比 re.sub 更快(更 Pythonic)的解决方案?删除前缀(由许多相同的字符组成),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27084025/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com