最快列表索引搜索

Rug*_*rra 3 python performance search

在整数列表中查找元素索引的最快方法是什么?

现在我在做

if value in mylist:
    return mylist.index(value)
Run Code Online (Sandbox Code Playgroud)

但似乎我做同样的事情两次:要知道,如果valuemylist我也知道索引位置.我还尝试了其他解决方案:

try:
    return mylist.index(value)
except ValueError:
    return None
Run Code Online (Sandbox Code Playgroud)

要么

for i, x in enumerate(mylist):
    if x == value:
         return i
return None
Run Code Online (Sandbox Code Playgroud)

但所有这些解决方案似乎都比较慢.

该数组未排序,只有4个元素.

Tam*_*iar 16

由于您只有四个项目,您也可以尝试这样做:

 if value == mylist[0]:
   return 0
 elif value == mylist[1]:
   return 1
 elif value == mylist[2]:
   return 2
 elif value == mylist [3]:
   return 3
Run Code Online (Sandbox Code Playgroud)

让我知道它在你的情况下是如何工作的.我好奇.:)

  • 我认为你是胜利者.您的解决方案比Padraic的解决方案快25%.循环展开可能是最好的解决方案. (2认同)