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