Find item in list in Python
The Problem
How can I find an item in a Python list?
The Solution
To check whether a list contains an item, we can use the Python in operator:
products = ["Apples", "Pears", "Oranges"]
if "Apples" in products:
print("Apples for sale!")
To return the index of a given item in a list, see this answer.
If we don’t want to find a specific item, but a list of items that fulfill some condition (for example, all the odd numbers in a list) we can use a list comprehension, as below:
my_list = [1, 4, 7, 8, 3]
odd_numbers = [n for n in my_list if n%2]
print(odd_numbers) # will print [1, 7, 3]
The list comprehension in odd_numbers will go through my_list and construct a new list of every item it finds that has a nonzero modulo 2 (that is, produces a remainder when divided by two).
If we want only the first item from our list that satisfies our condition, we change our list comprehension into a call to the Python next function.
my_list = [1, 4, 7, 8, 3]
odd_number = next(n for n in my_list if n%2)
print(odd_number) # will print 1
If next does not find a value, it will throw a StopIteration exception. To prevent it from doing so, we can provide a default value to return as an additional argument.
my_list = [4, 8]
odd_number = next((n for n in my_list if n%2), None)
print(odd_number) # will print None
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.