类似的问题已经在一个排序的列表中被问过了,链接在这里,但该解决方案使用了
假设我有一个列表,按中间元素排序,并按相反顺序排列。
建议采用最快的方式完成这项任务?
bisect
,对于逆序排序的列表不起作用。假设我有一个列表,按中间元素排序,并按相反顺序排列。
my_list = [[3,0.99,1], [2,0.98,54], [10,.85,4], [1,0.7,10], [12,0.69,31], [12,0.65,43], [1.56,0] ....]
我希望对一个单独排序的列表中的中间元素应用一系列阈值。
threshold = [0.97, 0.90, 0.83, 0.6]
我正在尝试查找第一个小于阈值的元素的索引值。在上面的例子中,它应该返回:
index_list = [2, 2, 3, 6]
建议采用最快的方式完成这项任务?
reverse_binary_search
函数可以转换为生成器(那么就不需要再传回最后一个索引)。然后,“final”行可以采用list(reverse_binary_search(my_list, threshold))
的形式。像你说的那样,适合OP并且已经优化了。 - Phil Cooper