Last modified: Oct 31, 2024 By Alexander Williams
Python Filter List: A Complete Guide
Filtering lists is a common Python operation that helps select specific items based on conditions.
This guide covers several ways to filter a list in Python with examples.
Using List Comprehension to Filter a List
List comprehensions provide a concise way to filter lists based on conditions.
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = [num for num in numbers if num % 2 == 0]
print(even_numbers)
[2, 4, 6]
In this example, even_numbers
contains only the even numbers from numbers
.
Using the filter() Function
The filter()
function offers an efficient way to filter a list using a function and returns an iterator.
It’s often combined with lambda
functions for inline conditions.
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)
[2, 4, 6]
Here, filter()
with lambda
selects only even numbers, producing [2, 4, 6]
.
Using a Custom Function with filter()
You can also use a custom function in filter()
for more complex filtering.
This approach is helpful when the filtering logic is too complex for a lambda function.
def is_even(num):
return num % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = list(filter(is_even, numbers))
print(even_numbers)
[2, 4, 6]
Here, is_even()
is used in filter()
to filter even numbers.
Filtering List of Strings by Substring
You can filter strings in a list based on specific substrings using list comprehensions or filter()
.
words = ["apple", "banana", "cherry", "apricot"]
a_words = [word for word in words if "a" in word]
print(a_words)
['apple', 'banana', 'apricot']
In this case, a_words
contains only words that include the letter "a"
.
Filtering Unique Items in a List
To filter unique items, set()
can help by removing duplicates from the list.
This technique works especially well when order is not important.
numbers = [1, 2, 2, 3, 4, 4, 5]
unique_numbers = list(set(numbers))
print(unique_numbers)
[1, 2, 3, 4, 5]
The use of set()
removes duplicates and results in [1, 2, 3, 4, 5]
.
Conclusion
Filtering lists in Python can be done with list comprehensions
, filter()
, and set()
for unique filtering.
Explore more on list operations in Adding a List to Another List in Python.
These methods make it easy to work with lists efficiently in Python.