string.find是如何在Python中实现的?

时间:2009-03-25 13:41:42

标签: python

我想知道字符串上的'find'方法是用线性搜索实现的,还是python做了更复杂的事情。 Python文档没有讨论实现细节,因此http://docs.python.org/library/stdtypes.html没有帮助。有人可以指点我相关的源代码吗?

3 个答案:

答案 0 :(得分:19)

关于实施的评论如下:

  

快速搜索/计数实施,   基于boyer-moore之间的混合   和horspool,还有几个铃铛   并且在顶部吹口哨。

     

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

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

答案 1 :(得分:4)

你应该能够在Objects / stringlib / find.h中找到它,尽管真正的代码在fastsearch.h中。

答案 2 :(得分:1)

看起来使用的算法来自Boyer-Moore-Horspool algorithm