Binary Search (bisect) in Python Last Updated : 11 Jul, 2025 Comments Improve Suggest changes Like Article Like Report Binary Search is a technique used to search element in a sorted list. In this article, we will looking at library functions to do Binary Search.Finding first occurrence of an element. bisect.bisect_left(a, x, lo=0, hi=len(a)) : Returns leftmost insertion point of x in a sorted list. Last two parameters are optional, they are used to search in sublist. Python3 # Python code to demonstrate working # of binary search in library from bisect import bisect_left def BinarySearch(a, x): i = bisect_left(a, x) if i != len(a) and a[i] == x: return i else: return -1 a = [1, 2, 4, 4, 8] x = int(4) res = BinarySearch(a, x) if res == -1: print(x, "is absent") else: print("First occurrence of", x, "is present at", res) Output: First occurrence of 4 is present at 2 Finding greatest value smaller than x. Python3 # Python code to demonstrate working # of binary search in library from bisect import bisect_left def BinarySearch(a, x): i = bisect_left(a, x) if i: return (i-1) else: return -1 # Driver code a = [1, 2, 4, 4, 8] x = int(7) res = BinarySearch(a, x) if res == -1: print("No value smaller than ", x) else: print("Largest value smaller than ", x, " is at index ", res) Output: Largest value smaller than 7 is at index 3 Finding rightmost occurrence bisect.bisect_right(a, x, lo=0, hi=len(a)) Returns rightmost insertion point of x in a sorted list a. Last two parameters are optional, they are used to search in sublist. Python3 # Python code to demonstrate working # of binary search in library from bisect import bisect_right def BinarySearch(a, x): i = bisect_right(a, x) if i != 0 and a[i-1] == x: return (i-1) else: return -1 a = [1, 2, 4, 4] x = int(4) res = BinarySearch(a, x) if res == -1: print(x, "is absent") else: print("Last occurrence of", x, "is present at", res) Output: Last occurrence of 4 is present at 3 Please refer Binary Search for writing your own Binary Search code.Reference : https://docs.python.org/3/library/bisect.html Comment More info K KunalDhyani Follow Improve Article Tags : Python Explore Python FundamentalsPython Introduction 3 min read Input and Output in Python 4 min read Python Variables 5 min read Python Operators 5 min read Python Keywords 2 min read Python Data Types 7 min read Conditional Statements in Python 3 min read Loops in Python - For, While and Nested Loops 6 min read Python Functions 5 min read Recursion in Python 4 min read Python Lambda Functions 5 min read Python Data StructuresPython String 5 min read Python Lists 4 min read Python Tuples 4 min read Python Dictionary 3 min read Python Sets 6 min read Python Arrays 7 min read List Comprehension in Python 4 min read Advanced PythonPython OOP Concepts 11 min read Python Exception Handling 5 min read File Handling in Python 4 min read Python Database Tutorial 4 min read Python MongoDB Tutorial 2 min read Python MySQL 9 min read Python Packages 12 min read Python Modules 7 min read Python DSA Libraries 15 min read List of Python GUI Library and Packages 3 min read Data Science with PythonNumPy Tutorial - Python Library 3 min read Pandas Tutorial 6 min read Matplotlib Tutorial 5 min read Python Seaborn Tutorial 15+ min read StatsModel Library- Tutorial 4 min read Learning Model Building in Scikit-learn 8 min read TensorFlow Tutorial 2 min read PyTorch Tutorial 7 min read Web Development with PythonFlask Tutorial 8 min read Django Tutorial | Learn Django Framework 7 min read Django ORM - Inserting, Updating & Deleting Data 4 min read Templating With Jinja2 in Flask 6 min read Django Templates 7 min read Python | Build a REST API using Flask 3 min read How to Create a basic API using Django Rest Framework ? 4 min read Python PracticePython Quiz 3 min read Python Coding Practice 1 min read Python Interview Questions and Answers 15+ min read Like