查找列表中第一个最大值的索引,与python中的值进行比较

时间:2016-12-14 07:11:42

标签: python

我有一个排序列表

my_list = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384]

我有一个值可以说是445.我想在列表中找到第一个最大值的索引。对于上面的情况,它应该返回索引值9(512)。

1 个答案:

答案 0 :(得分:4)

最简单的方法是使用二进制搜索来查找所需的索引,因为输入列表已排序。该算法已在bisect模块中实现:

import bisect

my_list = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384]
print(bisect.bisect_right(my_list, 445))
print(bisect.bisect_right(my_list, 512))

打印:

9
10