Sentry Answers>Python>

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

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:

Click to Copy
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.

Click to Copy
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
  • Syntax.fmListen to the Syntax Podcast
  • Sentry BlogLogging in Python: A Developer’s Guide
  • CodecovPython - Codecov
  • Syntax.fm logo
    Listen to the Syntax Podcast

    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 100,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.

© 2024 • Sentry is a registered Trademark of Functional Software, Inc.