在CPython中如何实现string.find?


问题内容

我想知道是否对字符串的“查找”方法是通过线性搜索实现的,或者python是否做了更复杂的事情。Python文档没有讨论实现细节,因此http://docs.python.org/library/stdtypes.html没有帮助。有人可以指出相关的源代码吗?


问题答案:

关于实施的评论如下:

快速的搜索/计数实现,基于boyer-moore和horspool之间的混合,顶部还有一些花哨的信息。

有关更多背景信息,请参见:http :
//effbot.org/zone/stringlib.htm

-
https://github.com/python/cpython/blob/master/Objects/stringlib/fastsearch.h#L5