gpt4 book ai didi

python - 切片上限不在列表中的列表的最快方法

转载 作者:行者123 更新时间:2023-12-03 23:19:56 24 4
gpt4 key购买 nike

假设我们有一个包含整数的巨大排序列表。使用不在列表中的上限来切片此列表的最快方法是什么?
例如,假设我们的列表是:

l=list(range(0,1000000, 2))
(这是一个简单的例子,列表可以是任意长度的,没有特定的间隔,所以它不能与某个范围相关)
我们想要得到一个切片,其中的项目小于 limit=1001实现这一目标的最快方法是什么,最好不检查列表中的所有项目?
一种常见的方法是使用列表推导式,例如 [i for i in l if i<limit] ,但这样我们必须检查 l 的所有项目并将它们与限制进行比较。如果限制在列表中,我们可以使用类似 l[:l.index(limit)] 的内容。但如果它不在列表中呢?
任何的想法?

最佳答案

您可以使用 bisect为了这:

import bisect
print(l[:bisect.bisect_right(l, 1001)])

关于python - 切片上限不在列表中的列表的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66065328/

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