How to filter Lists in Python
In this post, we will discuss three methods for list filtering in Python. Specifically, we will walk through how to use list comprehension, generator expressions and the built-in
filter() method to filter lists in python.
Let's assume that we have Data in a List and we want to extract values or reduce the list based on some Criteria. For example . let's consider the Following List
not_filtered_values = ["22", "21". None, "89"]
to start we can use list comprehension to filter the
only_numbers_array = [ n for n in not_filtered_values if n != None] # result= ["22", "21", "89"]
we can convert all elements of the List to Integers with a slight change to the list comprehension
only_numbers_array = [int(n) for n in not_filtered_values if n != None] # result= [22, 21, 89]
we can also filter the List, this can happen when we change the
Sometimes the Filtering Criterias are not so easy to express using list comprehension or generators. For those cases we can define a function that takes a list and tries to convert each element to an Integer . When the conversion throws no errors , we return true. When the conversion throws a value Error, we use an except Statement to catch the Error .
def convert_and_filter(input_list): try: int(input_list) return true except ValueError : return false
filter() function creates an Iterator and the
list() method allows us to create a list of Results:
filtered_numbers = list(filter(convert_and_filter, not_filtered_values))
When we are dealing with a lot of Data, which is often the case m we can filter using a generator expression. we can do the following :
not_filtered_values = ["22", "21". None, "89"] numbers = (int(n) for n in not_filtered_values if n != None)
We can now iterate over the generator
you can check here to see how to remove Duplicates from a list in Python
You like our Content? Follow us to stay up-to-date.