gpt4 book ai didi

python - 查找最大数 <= 其他一些数

转载 作者:行者123 更新时间:2023-11-28 20:24:28 26 4
gpt4 key购买 nike

我有一个列表 L包含排序的数字。

我有一个号码 x , 随意的。我想从 L 中找到最大的数字那是 <= x .我可以用一个循环来做到这一点,但很好奇是否有一个 Pythonic 的单行代码或奇特的函数。

最佳答案

使用bisect模块。与 O(N) 的简单循环相比,此方法的复杂度为 O(LogN)

>>> import bisect
def solve(lis, item):
ind = bisect.bisect_right(lis, item, hi = len(lis)-1)
return lis[ind] if lis[ind] <= item else lis[ind-1]

>>> L = range(10, 100)
>>> L.remove(15)
>>> solve(L,15)
14
>>> solve(L,17)
17
>>> L.pop(20)
31
>>> solve(L,31)
30

关于python - 查找最大数 <= 其他一些数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17283238/

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