如何在严格递增的python列表中高效地查找元素的序号?

如何在严格递增的python列表中高效地查找元素的序号?,python,Python,我只能考虑遍历列表,但这是非常低效的,因为列表可能会增长到1000000 编辑:我也知道二进制搜索。我想知道是否有任何内置python函数可以有效地执行此操作。请查看该模块。文档建议在排序列表中查找元素的方法如下: 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

我只能考虑遍历列表,但这是非常低效的,因为列表可能会增长到1000000

编辑:我也知道二进制搜索。我想知道是否有任何内置python函数可以有效地执行此操作。

请查看该模块。文档建议在排序列表中查找元素的方法如下:

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

使用二进制搜索,您可以从O(N)向下搜索到O(logN)。您可能应该买一本关于数据结构和算法的基本书籍。虽然这些概念很容易理解,但即使是使用二进制搜索的想法也是由最前沿的天才们首先提出的。站在他们的肩膀上。@Marcin谢谢Marcin。我想知道是否有一个内置python函数可以做到这一点。@thefourtheye好的,那么我建议您看看内置模块列表。不过,如果你知道二进制搜索,我想你会在谷歌上搜索到它并感到高兴。所以,我现在给你们分配两个读数@Marcin我正在学习我没听说过的每一个模块……:)