Tho*_*s T 4 python performance search list
从这个站点,它说list.index()是一个线性搜索列表.
它似乎in也是线性的.
使用一个优于另一个是否有任何优势?
Mar*_*ers 14
如果要比较不同的python方法,例如in运算符.index(),请使用timeit模块测试速度差异.Python数据类型的复杂性记录在http://wiki.python.org/moin/TimeComplexity上.
请注意,in和之间存在很大差异.index(); 第一个返回一个布尔值,后者是找到的项的索引(一个整数),或者它会引发一个异常.因此对于普通情况(稍微)慢一点:
$ 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
Run Code Online (Sandbox Code Playgroud)
如果您需要针对成员资格测试进行优化,请使用set():
$ python -mtimeit -s 'a = set(range(10000))' '5000 in a'
10000000 loops, best of 3: 0.108 usec per loop
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1124 次 |
| 最近记录: |