Mô-đun này cung cấp hỗ trợ để duy trì danh sách theo thứ tự đã sắp xếp mà không cần phải sắp xếp danh sách sau mỗi lần chèn phần tử mới. Chúng tôi sẽ tập trung vào hai chức năng là insort_left và insort_right.
insort_left
Hàm này trả về danh sách đã sắp xếp sau khi chèn số vào vị trí cần thiết, nếu phần tử đã có trong danh sách thì phần tử sẽ được chèn ở vị trí ngoài cùng bên trái có thể. Hàm này nhận 4 đối số, danh sách phải làm việc, số cần chèn, vị trí bắt đầu trong danh sách cần xem xét, vị trí kết thúc phải được xem xét. Giá trị mặc định của vị trí đầu và cuối lần lượt là 0 và độ dài của chuỗi.
Điều này tương tự như insert_left ngoại trừ việc phần tử mới được chèn sau khi chèn các mục nhập hiện có mà không cần duy trì thứ tự sắp xếp nghiêm ngặt.
Cú pháp
bisect.insort_left (a, x, lo =0, hi =len (a)) bisect.insort_left (a, x, lo =0, hi =len (a)) a là dãy số đã cho. x là số được chèn
Ví dụ
Trong ví dụ dưới đây, chúng ta thấy rằng chúng ta lấy một danh sách và trước tiên hãy áp dụng hàm bisect.insort_left cho nó.
import bisectlistA =[11,13,23,7,13,15] print ("Cho danh sách:", listA) bisect.insort_left (listA, 14) print ("Bisect left:\ n", listA) listB =[11,13,23,7,13,15] print ("Cho danh sách:", listB) bisect.insort_right (listB, 14,0,4) print ("Bisect righ:\ n", listB)Đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Cho danh sách:[11, 13, 23, 7, 13, 15] Chia trái:[11, 13, 23, 7, 13, 14, 15] Danh sách cho trước:[11, 13, 23, 7, 13 , 15] Bisect righ:[11, 13, 14, 23, 7, 13, 15]