python - 与列表相比,字符串的 "in"运算符的时间复杂度是否存在差异?

标签 python string list time-complexity in-operator

我想知道与使用“in”运算符在字符串中搜索子字符串相比,在列表中搜索字符串是否有任何好处。

我一直使用以下方法检查子字符串:

substr in str

但我遇到了一段代码,将字符串拆分然后执行检查。

substr in str.split()

在性能方面或其他方面是否有任何好处,或者这只是该程序员的偏好。

谢谢!

最佳答案

它们做两件不同的事情。两者的复杂度都是 O(n),但这并不真正相关,因为您不会因为它们有多快而选择一个而不是另一个;您可以根据自己的实际需求做出选择。

>>> "o b" in "foo bar"  # "o b" is a substring of "foo bar"
True
>>> "o b" in "foo bar".split()  # "o b" is not an element of ["foo", "bar"]
False

关于python - 与列表相比,字符串的 "in"运算符的时间复杂度是否存在差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58357478/

相关文章:

list - slice 和容器/列表之间的区别

python - 无法在 Visual Studio Code 中调试 Django 单元测试

python - 将unicode字符串拆分为单词

javascript - 如何仅在字符串的开头部分查找/替换不区分大小写的?

string - 在 ByteString 上拆分 ByteString(而不是 Word8 或 Char)

Python 列表帮助,列表中没有重复项

python - Scikit-learn 交叉验证分数 : too many indices for array

python - 在 Django 中从 Javascript 引用静态图像

string - Symfony 形式 - 在属性路径中给出的类型为 "string"的预期参数

python - pandas groupby 作为列表返回空,同时使用 agg 和 apply 函数