如何在严格增加的python列表中有效地找到元素的序号?

时间:2013-06-29 13:22:39

标签: python

我只能想到遍历列表,但这样效率非常低,因为列表可以增长到1000000。

编辑:我也知道二进制搜索。我想知道是否有任何内置的python函数可以有效地做到这一点。

1 个答案:

答案 0 :(得分:5)

查看bisect模块。文档建议在排序列表中定位元素:

def index(a, x):
    'Locate the leftmost value exactly equal to x'
    i = bisect_left(a, x)
    if i != len(a) and a[i] == x:
        return i
    raise ValueError