โมดูลนี้ให้การสนับสนุนสำหรับการรักษารายการตามลำดับการเรียงลำดับโดยไม่ต้องเรียงลำดับรายการหลังจากการแทรกองค์ประกอบใหม่แต่ละครั้ง เราจะเน้นไปที่สองหน้าที่คือ insort_left และ insort_right
insort_left
ฟังก์ชันนี้จะส่งคืนรายการที่จัดเรียงหลังจากใส่ตัวเลขในตำแหน่งที่ต้องการแล้ว หากองค์ประกอบนั้นมีอยู่แล้วในรายการ องค์ประกอบนั้นจะถูกแทรกที่ตำแหน่งซ้ายสุดที่เป็นไปได้ ฟังก์ชันนี้รับ 4 อาร์กิวเมนต์ รายการที่ต้องใช้งาน จำนวนที่จะแทรก ตำแหน่งเริ่มต้นในรายการที่ต้องพิจารณา ตำแหน่งสิ้นสุดที่ต้องพิจารณา ค่าเริ่มต้นของตำแหน่งเริ่มต้นและสิ้นสุดคือ 0 และความยาวของสตริงตามลำดับ
สิ่งนี้คล้ายกับ inser_left ยกเว้นว่าองค์ประกอบใหม่จะถูกแทรกหลังจากแทรกรายการที่มีอยู่โดยไม่รักษาลำดับการจัดเรียงที่เข้มงวด
ไวยากรณ์
bisect.insort_left(a, x, lo=0, hi=len(a))bisect.insort_left(a, x, lo=0, hi=len(a))a คือลำดับที่กำหนดx คือตัวเลขที่ ถูกแทรก
ตัวอย่าง
ในตัวอย่างด้านล่าง เราจะเห็นว่าเราใช้รายการและใช้ฟังก์ชัน bisect.insort_left กับรายการก่อน
นำเข้า bisectlistA =[11,13,23,7,13,15]print("Given list:",listA)bisect.insort_left(listA,14)print("Bisect left:\n",listA)listB =[11,13,23,7,13,15]print("รายการที่กำหนด:",listB)bisect.insort_right(listB,14,0,4)print("Bisect ขวา:\n",listB)ก่อน>ผลลัพธ์
การเรียกใช้โค้ดข้างต้นทำให้เราได้ผลลัพธ์ดังต่อไปนี้ -
รายการที่ระบุ:[11, 13, 23, 7, 13, 15]แบ่งครึ่ง:[11, 13, 23, 7, 13, 14, 15]รายการที่ระบุ:[11, 13, 23, 7, 13 , 15]แบ่งขวา:[11, 13, 14, 23, 7, 13, 15]