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 3中使类可比的标准方法是什么?(例如,通过id.)