python .index()和.find()的时间复杂度差异



我想知道.find().index()在Python中的时间复杂度有什么不同。在做LeetCode时,我注意到,.find()方法需要的时间明显长于.index()方法。根据我的理解,这两种方法都应该在O(n)中运行。我看到的唯一区别是,当您搜索的元素不存在时,.index()会抛出ValueError。

有人知道这种速度差异是从哪里来的吗?还有,有没有一个文档可以让你找到各种Python方法的时间复杂度?

str.findstr.index都只是any_find_slice的薄包装,它们唯一有意义的区别是在str.index中添加了以下内容:

if (result < 0) {
PyErr_SetString(PyExc_ValueError, "substring not found");
return NULL;
}

因此,任何感知到的运行时差异如果为真(您没有包含一个显示声明为真的基准测试)必须来自异常处理。

最新更新