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)
实现这一目标的最有效方法是什么?
我看到的所有现有问题都处理未排序的列表。如果列表已经排序,我相信会有更有效的过滤方式。
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)