¿Cómo usar bisect.insort_left con una clave?

A los doctores les falta un ejemplo ... ¿Cómo se usa?bisect.insort_left)_ basado en una clave?

Intentando insertar según la clave.

bisect.insort_left(data, ('brown', 7))

pone inserto endata[0].

De los documentos ...

bisect.insort_left(a, x, lo = 0, hi = len (a))

Insertarx ena en orden ordenado Esto es equivalente aa.insert(bisect.bisect_left(a, x, lo, hi), x) asumiendo quea ya está ordenado Tenga en cuenta que la búsqueda de O (log n) está dominada por el lento paso de inserción de O (n).

Uso de la muestra:

>>> 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)]
('yellow', 8)
>>>

Quiero poner('brown', 7) después('red', 5) en la lista ordenada endata utilizandobisect.insort_left. Ahora mismobisect.insort_left(data, ('brown', 7)) pone('brown', 7) adata[0]... porque no estoy usando las teclas para insertar ... los documentos no muestran hacer inserciones usando las teclas.

Respuestas a la pregunta(4)

Su respuesta a la pregunta