过滤排序列表

Sre*_*A R 0 python sorting filter python-3.x

我有一个列表,其中元素已经排序。我想过滤掉大于给定数字的元素。

例如,

original_list = [2,3,5,7,11]
limit = 6
expected_list = [2,3,5] # All elements <=6 
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最有效方法是什么?

我看到的所有现有问题都处理未排序的列表。如果列表已经排序,我相信会有更有效的过滤方式。

Ale*_*all 9

import bisect

original_list = [2,3,5,7,11]
limit = 6
expected_list = [2,3,5] # All elements <=6

index = bisect.bisect(original_list, limit)
filtered = original_list[:index]
assert filtered == expected_list
Run Code Online (Sandbox Code Playgroud)