如何找到一个索引,在该索引处可以将新项目插入到排序列表中并保持其排序?

est*_*est 26 python sortedlist

a = 132

b = [0, 10, 30, 60, 100, 150, 210, 280, 340, 480, 530]
Run Code Online (Sandbox Code Playgroud)

我想知道它a应该在有序列表中的第6位b.

什么是最蟒蛇的方式呢?

Mat*_*ias 34

bisect是Python标准库中的一个模块,非常适合此任务.bisect模块中的函数bisect将为您提供值的插入点的索引.

让我给出一个代码示例 bisect

from bisect import bisect
a = 132
b = [0, 10, 30, 60, 100, 150, 210, 280, 340, 480, 530]
print(bisect(b, a))
Run Code Online (Sandbox Code Playgroud)

结果将是5因为列表是从0开始的,所以实际上它是第6个位置.

您可以做的是将结果用于insert.

index = bisect(b, a)
b.insert(index, a)
Run Code Online (Sandbox Code Playgroud)

或没有中间变量

b.insert(bisect(b, a), a)
Run Code Online (Sandbox Code Playgroud)

现在b[0, 10, 30, 60, 100, 132, 150, 210, 280, 340, 480, 530].


mad*_*jar 24

使用bisect.它不是最美丽的API,但它正是您所需要的.

您将要使用bisect.bisect,它会准确返回您想要的内容.