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

标签 python list

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

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/

相关文章:

python - 这个语法在 Keras Dropout(0.5)(X) 中意味着什么?

java - 将 2 个列表一起打印

python - 根据索引是否包含在间隔列表中创建零/一列表

c - C 中的链表打印额外的零

python - 使用 pandas apply 时保留 None 值

python - Django Celery AbortableTask 使用

python - 如何使用 Beautiful Soup 提取具有某些类属性的列表项?

python - 如何在列表理解中添加多个变量

python - 在 python 中使用 xarray 获取月度气候学

python - 在 IPython Notebook 中更改绘图窗口大小