如何找到可以将新项目插入到排序列表中并保持排序的索引? [复制]

2023-12-27

a = 132

b = [0, 10, 30, 60, 100, 150, 210, 280, 340, 480, 530]

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

最Pythonic的方法是什么?


bisect https://docs.python.org/3/library/bisect.htmlPython 标准库中的一个模块非常适合此任务。功能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)

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到可以将新项目插入到排序列表中并保持排序的索引? [复制] 的相关文章

随机推荐