Some text some message..
Back 14 🧠 What is filter() in Python? 25 Jun, 2025

The 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.


✅ Syntax

filter(function, iterable)
Parameter Description
function Function that returns True or False
iterable Sequence (list, tuple, etc.) to filter from

🔸 Example: Filter Even Numbers

nums = [1, 2, 3, 4, 5, 6]

evens = filter(lambda x: x % 2 == 0, nums)
print(list(evens))  # Output: [2, 4, 6]

🔸 Example with Named Function

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]

🔸 Using filter() with Strings

words = ["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.


🔸 Real-World Use Case: Filter by Condition

users = [
    {"name": "Abhi", "age": 30},
    {"name": "John", "age": 17},
    {"name": "Sara", "age": 25}
]

adults = filter(lambda user: user["age"] >= 18, users)
print(list(adults))

Output:

[{'name': 'Abhi', 'age': 30}, {'name': 'Sara', 'age': 25}]

🔁 Difference: 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

💡 Notes

  • The result is an iterator, so convert using list(), tuple(), etc.

  • Works best with lambda or custom functions

  • Supports chaining with map() and reduce()