gpt4 book ai didi

python - 列表中第一次出现(不等式匹配)的索引

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

A=[2,3,5,7,11,13]
print(A.index(5))

答案是2,但我需要的是第一个大于 4 的(答案是一样的 - 2)。我可以应用 while 循环,但是有更优雅或内置的方法吗?在我的问题中,列表按升序排序(无重复),我的目标是将它分成两个列表:小于或等于 4 和大于 4;鉴于列表已排序,扫描它两次(甚至一次)将是多余的。

最佳答案

如@DanD.所述,您可以使用 bisect为此模块,在您的示例中,您可以使用 bisect_left

>>> import bisect
>>> bisect.bisect_left(A, 5)
2

这将使用二进制搜索,因为您的数据已排序,这将比线性搜索更快(O(logN) 而不是 O(N))。

如果你想要第一个值的索引大于4,那么你可以切换到bisect_right

>>> bisect.bisect_right(A, 4)
2

关于python - 列表中第一次出现(不等式匹配)的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48866017/

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