filter()
function is used to filter elements from an iterable (like a list or tuple) based on a function that returns True or False.It returns a filter object, which can be converted into a list, tuple, etc.
filter(function, iterable)
Parameter | Description |
---|---|
function |
Function that returns True or False |
iterable |
Sequence (list, tuple, etc.) to filter from |
nums = [1, 2, 3, 4, 5, 6]
evens = filter(lambda x: x % 2 == 0, nums)
print(list(evens)) # Output: [2, 4, 6]
def is_positive(n):
return n > 0
numbers = [-2, -1, 0, 1, 2, 3]
positive_numbers = filter(is_positive, numbers)
print(list(positive_numbers)) # Output: [1, 2, 3]
filter()
with Stringswords = ["apple", "", "banana", "", "cherry"]
non_empty = filter(None, words)
print(list(non_empty)) # Output: ['apple', 'banana', 'cherry']
✅ If the function is
None
,filter()
removes falsy values like""
,0
,None
,False
.
users = [
{"name": "Abhi", "age": 30},
{"name": "John", "age": 17},
{"name": "Sara", "age": 25}
]
adults = filter(lambda user: user["age"] >= 18, users)
print(list(adults))
[{'name': 'Abhi', 'age': 30}, {'name': 'Sara', 'age': 25}]
map()
vs filter()
Feature | map() |
filter() |
---|---|---|
Purpose | Transforms each element | Selects elements meeting a condition |
Return | Iterator of transformed values | Iterator of filtered values |
Function | Must return a value | Must return True or False |
The result is an iterator, so convert using list()
, tuple()
, etc.
Works best with lambda or custom functions
Supports chaining with map()
and reduce()