繁体   English   中英

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

[英]Difference in time complexity between python .index() and .find()

我想知道.find().index()在时间复杂度上的区别在 Python 中。 在做 LeetCode 时,我注意到.find() .index()花费的时间明显更长。 据我了解,这两种方法都应该在O(n)中运行。 我看到的唯一区别是,当您搜索的元素不存在时, .index()会引发 ValueError 。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM