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.
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]
Its syntax is:
filter(function, iterable)
The filter()
function takes two arguments:
The filter()
function returns an iterator.
Note: You can easily convert iterators to sequences like lists, tuples, strings etc.
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:
letters
list is passed to the filter_vowels()
function.filter_vowels()
returns True
, that element is extracted otherwise it’s filtered out.