Làm cách nào tôi có thể sử dụng mô-đun nhị phân trên các danh sách được sắp xếp giảm dần? ví dụ:python bisect, có thể làm việc với các danh sách sắp xếp giảm dần không?
import bisect
x = [1.0,2.0,3.0,4.0] # normal, ascending
bisect.insort(x,2.5) # --> x is [1.0, 2.0, 2.5, 3.0, 4.0] ok, works fine for ascending list
# however
x = [1.0,2.0,3.0,4.0]
x.reverse() # --> x is [4.0, 3.0, 2.0, 1.0] descending list
bisect.insort(x,2.5) # --> x is [4.0, 3.0, 2.0, 1.0, 2.5] 2.5 at end, not what I want really
Phương pháp duy nhất là insort (insort_right) hoặc insort_left - không có cách nào phù hợp với tôi. Bất kỳ đề xuất nào? cảm ơn bạn
Các phương pháp trong bisect nên có một " cmp "tham số, như sort(), nhưng không. –
Không, chúng phải có thông số 'khóa'. –
bạn đã xem 'deque' chưa? Bisect cũng làm việc với deque. Nó cho phép bạn bật phần tử đầu tiên của danh sách, đây có phải là những gì bạn muốn không? – hansaplast