从这个 site ,它说 list.index() 是对列表的线性搜索。

而且似乎 in 也是线性的。

使用一个比另一个有什么优势吗?

最佳答案

如果要比较不同的 Python 方法,例如 in 运算符与 .index() ,请使用 timeit module 来测试速度差异。 Python 数据类型的复杂性记录在 http://wiki.python.org/moin/TimeComplexity 上。

请注意, in.index() 之间存在很大差异;第一个返回一个 bool 值,后者返回找到的项目的索引(一个整数),否则会引发异常。因此,对于一般情况,它(略)慢:

$ python -mtimeit -s 'a = list(range(10000))' '5000 in a'
10000 loops, best of 3: 107 usec per loop
$ python -mtimeit -s 'a = list(range(10000))' 'a.index(5000)'
10000 loops, best of 3: 111 usec per loop

如果您需要针对成员资格测试进行优化,请改用 set():
$ python -mtimeit -s 'a = set(range(10000))' '5000 in a'
10000000 loops, best of 3: 0.108 usec per loop

关于python - 在列表、运算符或 index() 中搜索项目哪个更快?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13540330/

10-11 00:42
查看更多