In this tutorial, we will learn about the Python filter() function with the help of examples.

The ​​filter()​​ function extracts elements from an iterable (list, tuple etc.) for which a function returns True.

Example

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

# returns True if number is even
def check_even(number):
if number % 2 == 0:
return True

return False

# Extract elements from the numbers list for which check_even() returns True
even_numbers_iterator = filter(check_even, numbers)

# converting to list
even_numbers = list(even_numbers_iterator)

print(even_numbers)

# Output: [2, 4, 6, 8, 10]

filter() Syntax

Its syntax is:

filter(function, iterable)

filter() Arguments

The ​​filter()​​ function takes two arguments:


filter() Return Value

The ​​filter()​​ function returns an iterator.

Note: You can easily convert iterators to sequences like lists, tuples, strings etc.


Example 1: Working of filter()

letters = ['a', 'b', 'd', 'e', 'i', 'j', 'o']

# a function that returns True if letter is vowel
def filter_vowels(letter):
vowels = ['a', 'e', 'i', 'o', 'u']
return True if letter in vowels else False


filtered_vowels = filter(filter_vowels, letters)

# converting to tuple
vowels = tuple(filtered_vowels)
print(vowels)

Output

('a', 'e', 'i', 'o')

Here, the ​​filter()​​​ function extracts only the vowel letters from the ​​letters​​ list. Here’s how this code works:


  • Each element of the ​​letters​​​ list is passed to the ​​filter_vowels()​​ function.
  • If ​​filter_vowels()​​​ returns ​​True​​, that element is extracted otherwise it’s filtered out.