我有一个排序列表

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


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

最佳答案

最简单的方法是使用二进制搜索来查找所需的索引,因为输入列表已排序。此算法已在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

关于python - 在列表中查找第一最大值的索引,将其编译为python中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41136785/

10-09 03:03