Open In App

Remove falsy values from a list in Python

Last Updated : 29 Sep, 2022
Improve
Improve
Like Article
Like
Save
Share
Report

Prerequisite: Truthy vs Falsy Values in Python

In Python, the value that evaluates to False is considered as a Falsy value. The value such as empty list, empty dictionary, empty tuple, empty set, empty string, None, False, 0 are considered as Falsy values. So our task is to remove all the Falsy values from the List.

Examples:

Input:  [10,20,30,0,False,40,0]
Output:  [10,20,30,40]
Input: [False,None,1,2,3,"Geeks"]
Output: [1,2,3,"Geeks"]
Input: [[],(),"GeeksForGeeks",26,27]
Output: ["GeeksForGeeks",26,27]

Method 1:

We can create a new list that will contain values that are not Falsy. We will iterate over the list, and check whether the given value is Truthy or Falsy. If it is Truthy we will add it to the new list. Now to check whether the given value is Truthy or Falsy, we can use bool() method. This method returns True if the value is Truthy else return False.

Python3




# Python Program to remove falsy values
# from List
 
# Function returning the updated list
def Remove_Falsy(List):
    List1 = []
    for i in List:
        if(bool(i)):
            List1.append(i)
    return List1;
             
# Original List
List1 = [10, 20, 30, 0, False, 40, 0]
List2 = [False, None, 1, 2, 3, "Geeks"]
List3 = [[], (), "GeeksForGeeks", 26, 27]
 
# printing the updated list after removing Falsy values
print("List1[] = ", Remove_Falsy(List1))
print("List2[] = ", Remove_Falsy(List2))
print("List3[] = ", Remove_Falsy(List3))


Output:

List1[] =  [10, 20, 30, 40]
List2[] =  [1, 2, 3, 'Geeks']
List3[] =  ['GeeksForGeeks', 26, 27]

Method 2 : 

We can use the filter() method to filter out false values. In the method – filter(function,sequence) , we will use bool() method as an argument in the filter method .It will return true or false based upon truthy or falsy values.

Python3




# Python Program to remove falsy values
# from List
 
# Function returning the updated list
def Remove_Falsy(List):
    return list(filter(bool,List))
 
# Original List
List1 = [ 10, 20, 30, 0, False, 40, 0]
List2 = [ False, None, 1, 2, 3, "Geeks"]
List3 = [ [], (), "GeeksForGeeks", 26, 27]
 
# printing the updated list after removing Falsy values
print("List1[] = ", Remove_Falsy(List1))
print("List2[] = ", Remove_Falsy(List2))
print("List3[] = ", Remove_Falsy(List3))


Output:

List1[] =  [10, 20, 30, 40]
List2[] =  [1, 2, 3, 'Geeks']
List3[] =  ['GeeksForGeeks', 26, 27]

Method 3:

We can list comprehension to filter out false values. In the method – list comprehension is used to iterate over the list and before appending element to a list apply a conditional element to the element if it falsely values it will not append in the list else it append in the list.

Python




# Python Program to remove falsy values
# from List
 
# Function returning the updated list
def Remove_Falsy(List):
    List1 = [i for i in List if i]
    return List1;
             
# Original List
List1 = [10, 20, 30, 0, False, 40, 0]
List2 = [False, None, 1, 2, 3, "Geeks"]
List3 = [[], (), "GeeksForGeeks", 26, 27]
 
# printing the updated list after removing Falsy values
print("List1[] = ", Remove_Falsy(List1))
print("List2[] = ", Remove_Falsy(List2))
print("List3[] = ", Remove_Falsy(List3))


Output:

List1[] =  [10, 20, 30, 40]
List2[] =  [1, 2, 3, 'Geeks']
List3[] =  ['GeeksForGeeks', 26, 27]


Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads