gpt4 book ai didi

python - 对数时间Python中有序列表中的位置元素

转载 作者:行者123 更新时间:2023-11-28 16:49:13 25 4
gpt4 key购买 nike

我有一个排序列表,我需要在该列表中定位一个元素,使得前一个元素是 <=,列表中的下一个元素是 >(该列表是一个 float 列表)

我需要返回 <= 即前一个元素的位置

我怎样才能在对数时间内实现这个。我想过使用类似于二进制 seacrh 的方法,但无法让它工作

任何帮助将不胜感激

附言一个例子是:如果列表是

testlist=[0.0, 0.25, 0.5, 0.75, 1.0]

然后我为 0.27 运行该函数该函数将返回 1(0.25 的位置)如果我运行它 0.5,它会返回 2

最佳答案

二分查找专用模块:bisect

import bisect

testlist=[0.0, 0.25, 0.5, 0.75, 1.0]
print bisect.bisect(testlist, .27) - 1
## 1

关于python - 对数时间Python中有序列表中的位置元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9965648/

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