এই মডিউলটি একটি লিস্টকে সর্টেড অর্ডারে রেখে নতুন উপাদান ইনসার্ট করার পর সর্ট করার প্রয়োজন নেই। আমরা দুটি ফাংশনে ফোকাস করব: insort_left এবং insort_right।
এই ফাংশনটি নম্বরটি ইনসার্ট করার পর সর্টেড লিস্ট রিটার্ন করে। যদি উপাদানটি লিস্টে ইতিমধ্যে থাকে, তবে তা বামপাশে সম্ভাব্য পজিশনে ইনসার্ট হয়। এই ফাংশন ৪টি আর্গুমেন্ট নেয়: লিস্ট, ইনসার্ট করার নম্বর, লিস্টে শুরুতে কোন পজিশন থেকে বিবেচনা করবে, এবং শেষে কোন পজিশন পর্যন্ত বিবেচনা করবে। ডিফল্ট ভ্যালু ০ এবং লিস্টের লেনথ।
এটি insort_left-এর মতোই, কিন্তু নতুন উপাদানটি বিদ্যমান এন্ট্রি-গুলোর পরে ইনসার্ট হয় স্ট্রিক্ট সর্ট অর্ডার রক্ষা না করে।
bisect.insort_left(a, x, lo=0, hi=len(a)) bisect.insort_right(a, x, lo=0, hi=len(a)) # a = given sequence, x = number to be inserted
নিচের উদাহরণে আমরা একটি লিস্ট নেওয়া এবং সেটিতে bisect.insort_left এবং insort_right প্রয়োগ করা দেখানো হয়েছে।
import bisect
listA = [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("Given list:", listB)
bisect.insort_right(listB, 14, 0, 4)
print("Bisect right:\n", listB)
উপরোক্ত কোড রান করলে নিচের ফলাফল পাওয়া যাবে:
Given list: [11, 13, 23, 7, 13, 15] Bisect left: [11, 13, 23, 7, 13, 14, 15] Given list: [11, 13, 23, 7, 13, 15] Bisect right: [11, 13, 14, 23, 7, 13, 15]