gpt4 book ai didi

python - 在 Python 中,如何找到排序列表中第一个大于阈值的值的索引?

转载 作者:IT老高 更新时间:2023-10-28 22:14:44 26 4
gpt4 key购买 nike

在Python中,如何找到排序列表中第一个大于阈值的值的索引?

我可以想到几种方法(线性搜索,手写二分法,..),但我正在寻找一种干净且合理有效的方法。由于这可能是一个很常见的问题,我相信有经验的 SOers 可以提供帮助!

谢谢!

最佳答案

看看bisect .

import bisect

l = [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

bisect.bisect(l, 55) # returns 7

与线性搜索比较:

timeit bisect.bisect(l, 55)
# 375ns


timeit next((i for i,n in enumerate(l) if n > 55), len(l))
# 2.24us


timeit next((l.index(n) for n in l if n > 55), len(l))
# 1.93us

关于python - 在 Python 中,如何找到排序列表中第一个大于阈值的值的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7281760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com