相关疑难解决方法(0)

如何使用bisect.insort_left键?

Doc's缺乏一个例子......你如何使用bisect.insort_left)_基于密钥?

试图基于密钥插入.

bisect.insort_left(data, ('brown', 7))
Run Code Online (Sandbox Code Playgroud)

把插入放在data[0].

来自docs ...

bisect.insort_left(A,X,LO = 0,HI = LEN(a)中)

    插入X一个按排序顺序.这相当于a.insert(bisect.bisect_left(a, x, lo, hi), x)假设a已经排序.请记住,O(log n)搜索由缓慢的O(n)插入步骤控制.

样品用法:

>>> data = [('red', 5), ('blue', 1), ('yellow', 8), ('black', 0)]
>>> data.sort(key=lambda r: r[1])
>>> keys = [r[1] for r in data]         # precomputed list of keys
>>> data[bisect_left(keys, 0)]
('black', 0)
>>> data[bisect_left(keys, 1)]
('blue', 1)
>>> data[bisect_left(keys, 5)]
('red', 5)
>>> data[bisect_left(keys, 8)] …
Run Code Online (Sandbox Code Playgroud)

python bisect

30
推荐指数
5
解决办法
1万
查看次数

在某个位置插入列表的成本/复杂性是多少?

在Python中,列表必须list.insert(i, x)"在给定位置插入项目".在C++中,也有一个列表.在C++中,在任何地方插入元素的成本/复杂度是O(1).对于Python列表是否相同?如果没有,可以使用其他任何东西在Python中获得O(1)插入时间吗?

python list time-complexity

12
推荐指数
3
解决办法
2万
查看次数

标签 统计

python ×2

bisect ×1

list ×1

time-complexity ×1