Python filter()

The filter() function selects elements from an iterable (list, tuple etc.) based on the output of a function.

The function is applied to each element of the iterable and if it returns True, the element is selected by the filter() function.

Example


filter() Syntax

The syntax of filter() is:

filter(function, iterable)

filter() Arguments

The filter() function takes two arguments:

  • function - a function
  • iterable - an iterable like sets, lists, tuples etc.

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()

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.

Note: It's also possible to filter lists using a loop, however, using the filter() function is much more cleaner.


Example 2: Using Lambda Function Inside filter()

Output

[2, 4, 6]

Here, we have directly passed a lambda function inside filter().

Our lambda function returns True for even numbers. Hence, the filter() function returns an iterator containing even numbers only.


Example 3: Using None as a Function Inside filter()

Output

[1, 'a', True, '0']

When None is used as the first argument to the filter() function, all elements that are truthy values (gives True if converted to boolean) are extracted.

Video: Python map() and filter()