Python在列表中查找项目索引的最快方法

Python在列表中查找项目索引的最快方法,第1张

Python在列表中查找项目索引的最快方法
def find(target, myList):    for i in range(len(myList)):        if myList[i] == target: yield idef find_with_list(myList, target):     inds = []     for i in range(len(myList)):         if myList[i] == target:  inds += i,     return indsIn [8]: x = range(50)*200In [9]: %timeit [i for i,j in enumerate(x) if j == 3]1000 loops, best of 3: 598 us per loopIn [10]: %timeit list(find(3,x))1000 loops, best of 3: 607 us per loopIn [11]: %timeit find(3,x)1000000 loops, best of 3: 375 ns per loopIn [55]: %timeit find_with_list(x,3)1000 loops, best of 3: 618 us per loop

假设您想要一个列表作为输出:对于我的测试,所有选项似乎都表现出相似的时间性能,列表理解最快(几乎没有)。

而且,如果您对返回发电机感到很满意,那么它比其他方法要快得多。认为它并没有考虑实际对索引进行迭代,也不存储索引,因此无法再次对inds进行迭代。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/4980066.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-11-14
下一篇2022-11-14

发表评论

登录后才能评论

评论列表(0条)

    保存