11

可能重复:
string.find 是如何在 CPython 中实现的?

我在堆栈溢出中阅读了很多比较子字符串搜索性能的帖子(例如Python 字符串搜索效率这是搜索子字符串的最有效方法吗?python 中的子字符串等...)

我还查看了 contains abstract.c的源代码实现。

据我所知,内置实现是一个迭代的:python docs

python 是否有更充分的技术来查找子字符串:Boyer–Moore 算法Rabin–Karp 算法等...???

编辑

该问题已扩展: Python:通过嵌入复杂算法改进子字符串搜索

4

2 回答 2

10

实际的 cpython 字符串搜索实现在这里:

http://hg.python.org/cpython/file/tip/Objects/stringlib/fastsearch.h

它似乎使用了 Boyer-Moore。

于 2012-09-03T09:05:29.690 回答
1

核心实现不提供此级别的功能。

您将使用 Google 找到适用于 Python 的 Boyer-Moore 或 Rabin-Karp 的实现。

于 2012-09-03T09:03:02.520 回答