Home
Python
filter Example
This page was last reviewed on Aug 11, 2022.
Dot Net Perls
Filter. This Python built-in removes non-matching elements. Internally it loops over the iterable. When the lambda predicate returns False, the element is removed.
Shows a list
With filter, we use functional programming—we focus on function calls with lambda arguments, not for-loops with if-statements. This is powerful, but can be confusing too.
for
if
List example. Here we use filter with the list type. Almost all Python programs use lists, so this is a good place to start. We use the lambda keyword.
lambda
Result The filter() built-in does not return another list. It returns an iterator. We can use the list() function to create a new list.
Shows a list
numbers = [10, 20, 0, 0, 30, 40, -10] # Filter out numbers equal to or less than zero. result = list(filter(lambda n: n > 0, numbers)) print(result)
[10, 20, 30, 40]
Range example. The filter() method can be used with a range as the second argument. Here we have a range from 0 through 9 inclusive. We then call filter on this range.
Detail The lambda receives each value in the range and names it "x." If it is evenly divisible by 2, it returns true.
Detail The lambda filters out all numbers that are not evenly divisible by 2 (all odd numbers). We are left with even numbers.
# Use a range with filter. # ... Return true in lambda if number is even. # Even numbers are all evenly divisible by 2. # We then print all even numbers in the range with filtering. for value in filter(lambda x: x % 2 == 0, range(0, 10)): print("EVEN NUMBER IN RANGE:", value);
EVEN NUMBER IN RANGE: 0 EVEN NUMBER IN RANGE: 2 EVEN NUMBER IN RANGE: 4 EVEN NUMBER IN RANGE: 6 EVEN NUMBER IN RANGE: 8
A note. When using filter, we must specify what elements we want to keep—all others are removed. So when the test succeeds in the lambda (and it returns true) we keep the element.
A review. Filter() is a useful built-in. But as with other functional constructs, it is best to use it only when it makes code clearer. A for-loop may be preferred for simplicity.
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
This page was last updated on Aug 11, 2022 (edit).
Home
Changes
© 2007-2024 Sam Allen.