filter() overview
The filter() function extracts elements of an object, based on a function.
filter() even numbers
To filter even numbers, we define a is_even() function and use filter() to extract all even numbers.
# filter even number using filter()
# define is_even() function
def is_even(number):
if (number % 2) == 0:
return True
# filter list and return filtered list
myNumbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
filtered = filter(is_even, myNumbers)
print(list(filtered))
The list is filtered using our function. Then the filtered object is turned into a list again and the result is printed.
[2, 4, 6, 8, 10]
filter() vowels
A second example demonstrates how to filter vowels in a list of characters.
# filter vowels from a list of characters
characters = ['a', 1, 'b', 2, 'd', 'e', 'z', 99, 'i', 5.5]
# define function to check character for vowels
def is_vowel(character):
return True if character in ['a', 'e', 'i', 'o', 'u'] else False
filtered = list(filter(is_vowel, characters))
print(filtered)
The list is filtered for vowels and a list of the filtered vowels is returned.
['a', 'e', 'i']
filter() syntax
The syntax of the filter() function is:
filter(function, object)
filter() arguments
The filter() function expects exactly two arguments.
If more or less than two arguments are given, a TypeError exception is raised.
The first argument is a function that can filter values based on True and False.
The second argument is a data structure like a set, list or tuple.
filter() return value
The filter() function returns a type filter. Use dict(), tuple() or list() to return it in the original data structure.