Python filter() Function



The Python filter() function is a built-in function that allows us to filter out elements from an iterable object based on the specified condition. An object in Python is said to be iterable if it allows its item to be retrieved through iteration, such as lists, tuples, or strings.

The filter() function applies the condition on each element of the iterable object and checks which element satisfies the given condition. Based on that, it creates a new iterable containing only those elements that meet the condition.

Syntax

The syntax of the Python filter() function is shown below −

filter(function, iterable)

Parameters

The Python filter() function accepts two parameters −

  • function − It specifies a condition based on which the elements of the iterables are filtered out.

  • iterable − It represents an object such as a list, string, or tuple.

Return Value

The Python filter() function returns a new iterable.

Examples

Let's understand how filter() function works with the help of some examples −

Example 1

The following example shows the basic usage of Python filter() function. Here, this function accepts a lambda expression and a list object to filter out the even numbers from the specified list.

numerics = [59, 22, 71, 65, 12, 6, 19, 28, 17, 5]
lstOfevenNums = list(filter(lambda x: (x % 2 == 0), numerics))
print("The list of even numbers from the list:")
print(lstOfevenNums)

When we run above program, it produces following result −

The list of even numbers from the list:
[22, 12, 6, 28]

Example 2

In the code below, we have defined a user-defined function that will be passed to filter() function as an argument to check and separate vowels from the specified string.

def checkVowel(chars):
   vowelsLst = 'aeiou'
   return chars in vowelsLst
orgnlStr = "Tutorials Point"
newVowels = ''.join(filter(checkVowel, orgnlStr))
print("The vowels from the given string:")
print(newVowels)

Following is an output of the above code −

The vowels from the given string:
uoiaoi

Example 3

If we pass None as a function argument, the filter function will remove all elements from the iterable that are considered false. Some Falsy values in Python are "", 0, False, etc. The following code illustrates the same −

dataLst = [55, "", None, "Name", "Age", 25, None]
newLst = list(filter(None, dataLst))
print("The new list without None value:")
print(newLst)

Output of the above code is as follows −

The new list without None value:
[55, 'Name', 'Age', 25]

Example 4

In the code below a dictionary is created. Then the elements with an id lower than 100 are removed using the filter() function.

employees = [
   {"name": "Ansh", "id": 121},
   {"name": "Vivek", "id": 100},
   {"name": "Tapas", "id": 93}
]
newLst = list(filter(lambda x: (x['id'] >= 100), employees))
print("The new list with id greater than or equal to 100:")
print(newLst)

Following is an output of the above code −

The new list with id greater than or equal to 100:
[{'name': 'Ansh', 'id': 121}, {'name': 'Vivek', 'id': 100}]
python_built_in_functions.htm
Advertisements