Fastest way to check if a list contains an item in Python

David Y.
—The Problem
Using Python, what is the fastest way to check if an item is present in a list?
The Solution
This depends on the size of the list and the number of items to check for. When checking for a single item in a list, the fastest way is to use Python’s in operator:
my_list = [1, 2, 3, 4, 5] if 4 in my_list: print("4 is present.")
If we’re checking for multiple items in a large, unordered list, it can be faster to convert the list and the items to sets before performing the check.
import random my_list = list(range(1,10001)) # list of number 1 to 10000 random.shuffle(my_list) # put my_list in a random order items_to_find = list(range(1,1001)) # find the numbers 1 to 1000 my_list_set = set(my_list) items_to_find_set = set(items_to_find) for item in items_to_find_set.intersection(my_list_set): print(f"{item} is present.")
Performance can vary at lower scales and for different lists. When searching for a single item in a list, in should be sufficient; when searching for common items between two very long lists with thousands of items, set conversion is probably the way to go.
- Sentry BlogPython Performance Testing: A Comprehensive Guide (opens in a new tab)
- Syntax.fmListen to the Syntax Podcast (opens in a new tab)
- Sentry BlogLogging in Python: A Developer’s Guide (opens in a new tab)
- CodecovPython - Codecov (opens in a new tab)
- Listen to the Syntax Podcast (opens in a new tab)
![Syntax.fm logo]()
Tasty treats for web developers brought to you by Sentry. Get tips and tricks from Wes Bos and Scott Tolinski.
SEE EPISODES
Considered “not bad” by 4 million developers and more than 150,000 organizations worldwide, Sentry provides code-level observability to many of the world’s best-known companies like Disney, Peloton, Cloudflare, Eventbrite, Slack, Supercell, and Rockstar Games. Each month we process billions of exceptions from the most popular products on the internet.
