a = 132
b = [0, 10, 30, 60, 100, 150, 210, 280, 340, 480, 530]
我想知道 a
应该在有序列表 b
中的第 6 位。
最pythonic的方法是什么?
最佳答案
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))
结果会是5
,因为列表是从0开始的,所以实际上是第6位。
您可以知道的是将结果用于 insert
。
index = bisect(b, a)
b.insert(index, a)
或者没有中间变量
b.insert(bisect(b, a), a)
现在 b
将是 [0, 10, 30, 60, 100, 132, 150, 210, 280, 340, 480, 530]
。
关于python - 如何找到可以将新项目插入排序列表并保持排序的索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11290767/