You are currently viewing Python Remove None From List

How to remove the None values from a list in Python? You can use various ways of Python to remove None values from a given list. None is a special keyword in Python used to represent the absence of a value or the concept of “nothing”. It is not the same as an empty string, zero, or any other false value. It is a unique object of the NoneType class and is used to indicate the lack of a value or a missing value.

Advertisements

You can remove the None values from a list using many ways, for example, by using list comprehension, filter(), naive method, remove(), slicing, while loop, and, itertools.filterfalse() functions. In this article, I will explain the removal of the None values from a list by using all these functions with examples.

1. Quick Examples of Removing None Values From the List

If you are in a hurry, below are some quick examples of how to remove the None values from a list.


# Quick examples of remove None value from list

# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]

# Example 1: Using list comprehension
# to remove None values from a list 
filtered_list = [item for item in mylist if item is not None]

# Example 2: Using filter() method
# to remove None values from a list 
filtered_list = list(filter(lambda item: item is not None, mylist))

# Example 3: Using naive method
# to remove None values in list
filtered_list = []
for item in mylist:
    if item != None :
      filtered_list.append(item)

#Example 4: Using itertools.filterfalse()
# to remove none values from a list 
filtered_list = list(itertools.filterfalse(lambda item: not item , mylist))

# Example 5: Using remove() method
# to remove none values from a list 
while None in mylist:
    mylist.remove(None)

# Example 6: Using slicing
# to remove none values from a list 
i = 0
while i < len(mylist):
  if mylist[i] is None:
    mylist = mylist[:i] + mylist[i+1:]
  else:
    i += 1

# Example 7: Using while loop
# to remove none values from a list 
res = []
while(None in mylist):
    mylist.remove(None)

2. Remove None Values from a List Using List Comprehension

You can remove None values from a list using list comprehension. For example, first initializes a list called mylist containing various elements, including None, and then uses list comprehension to create a new list called filtered_list that excludes all occurrences of None. Finally, it prints both the original and the filtered lists.


# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]
print("Original list:",mylist)

# Using list comprehension
# Remove None values from a list 
filtered_list = [item for item in mylist if item is not None]
print("After removing none values from the list:",filtered_list)

Yields below output.

python remove none list

As you can see, the None values have been successfully removed from the list, leaving only the other elements.

3. Remove None Values from a List Using filter() Method

You can also use the filter() method to remove None values from a list. The filter() method applies a filtering function to each element in the list and returns an iterator with filtered elements.

The filter() method, in conjunction with the lambda function lambda item: item is not None, effectively filters out all the None values from the original list, leaving only the non-None elements in the resulting filtered_list.


# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]
print("Original list:",mylist)

# Using filter() method
# Remove None values from a list 
filtered_list = list(filter(lambda item: item is not None, mylist))
print("After removing none values from the list:",filtered_list)

Yields the same output as above.

4. Remove None Values from a List Using Naive Method

You can remove None values from a list using a naive method by iterating through the list and creating a new list without the None elements.

In the below example, you can iterate over each element in the mylist, and then check if the element is not None, you append it to the filtered_list. This way, you can create a new list without the None values.


# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]
print("Original list:",mylist)

# Using naive method
# to remove None values in list
filtered_list = []
for item in mylist:
    if item != None :
      filtered_list.append(item)
print("After removing none values from the list:",filtered_list)

Yields the same output as above.

5. Using itertools.filterfalse() Method

You can also use the itertools.filterfalse() function to remove None values from the mylist. For example, first, you initialize the list mylist with some elements, including None values. Then, you use the itertools.filterfalse() function to remove the None values from mylist. In the filtered_list, all the None values have been removed, and you’re left with a new list containing only the non-None elements from the original list.


import itertools

# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]
print("Original list:",mylist)

# Using itertools.filterfalse()
# Remove None values from a list 
filtered_list = list(itertools.filterfalse(lambda item: not item , mylist))
print("After removing none values from the list:",filtered_list)

Yields the same output as above.

6. Remove None Values from a List Using the remove() Method

You can also remove None values from a list using the remove() method, you can iterate over the list and remove each occurrence of None until there are no more None values left in the list.

In the below example, the while loop checks if None is present in the list (None in mylist). If it finds None, it removes the first occurrence using mylist.remove(None). The loop continues executing as long as there are None values in the list, effectively removing all occurrences of None.


# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]
print("Original list:",mylist)

# Using remove() method
# Remove None values from a list 
while None in mylist:
    mylist.remove(None)
print("After removing none values from the list:",mylist)

Yields the same output as above.

7. Remove None Values from a List Using Slicing

You can also remove None values from a list using slicing, you can create a new list by slicing the original list, excluding the elements that are equal to None.

In the below example, the while loop iterates over the list elements using the index variable i. If the element mylist[i] is None, it removes that element from the list by slicing the list before and after the None element and then reassigning it to mylist. The i variable is only incremented when the element is not None, so it skips the position of the removed element, allowing the loop to progress correctly.


# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]
print("Original list:",mylist)

# Using slicing
# Remove None values from a list 
i = 0
while i < len(mylist):
  if mylist[i] is None:
    mylist = mylist[:i] + mylist[i+1:]
  else:
    i += 1
print("After removing none values from the list:",mylist)

Yields the same output as above.

8. Remove None Values from a List Using While Loop

You can also remove None values from a list using a while loop, you can iterate through the list and use the remove() method to delete the None values one by one until there are no more None values left in the list.

In the below example, the while loop checks if None is present in the list (None in mylist). If it finds None, it removes all occurrences None from the list using the remove() method. The loop continues executing as long as there are None values in the list, effectively removing all occurrences of None.


# Initialize list
mylist = [5, None, 10, 15, None, 20, 25, None]
print("Original list:",mylist)

# Using while loop
# Remove None values from a list 
res = []
while(None in mylist):
    mylist.remove(None)
print("After removing none values from the list:",mylist)

Yields the same output as above.

Conclusion

In this article, I have explained how to remove the None values from a list in Python by using list comprehension, filter(), naive method, remove(), slicing, while loop, and, itertools.filterfalse() functions with examples.

Happy Learning !!