Python program that uses filter
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))
[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.
Lambda: The lambda receives each value in the range and names it "x." If it is evenly divisible by 2, it returns true.
So: The lambda filters out all numbers that are not evenly divisible by 2 (all odd numbers). We are left with even numbers.
Python program that uses filter with range# 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.