Skip to content
Home / Fundamentals

Removing Empty Strings from a List of Strings in Python

In Python, you may sometimes want to remove empty strings from a list of strings. This can be useful if you have a list of strings that may contain some blank elements and you want to clean it up before further processing.

There are several ways to remove empty strings from a list of strings in Python. Here are a few examples:

Method 1: Using a For Loop

One way to remove empty strings from a list of strings is to use a for loop to iterate through the list and add only non-empty strings to a new list. Here is an example:

def remove_empty_strings(string_list):
    non_empty_strings = []
    for string in string_list:
        if string:
            non_empty_strings.append(string)
    return non_empty_strings

string_list = ['', 'abc', '', 'def', '', 'ghi']
print(remove_empty_strings(string_list))
['abc', 'def', 'ghi']

In this example, we defined a function called remove_empty_strings that takes a list of strings as an argument. The function uses a for loop to iterate through the list of strings and checks if each string is empty using an if statement. If the string is not empty, it is added to the non_empty_strings list. Finally, the function returns the non_empty_strings list, which contains only non-empty strings from the original list.

Method 2: Using a List Comprehension

Another way to remove empty strings from a list of strings is to use a list comprehension. A list comprehension is a concise way to create a list by iterating over an iterable and filtering the elements based on a condition. Here is an example:

string_list = ['', 'abc', '', 'def', '', 'ghi']
non_empty_strings = [string for string in string_list if string]
print(non_empty_strings)
['abc', 'def', 'ghi']

In this example, we created a list called non_empty_strings using a list comprehension. The list comprehension iterates through the string_list and filters out any empty strings using the if string condition. The result is a list containing only non-empty strings from the original list.

Method 3: Using the filter() Function

Another way to remove empty strings from a list of strings is to use the built-in filter() function. The filter() function returns an iterator that filters elements from an iterable based on a function. Here is an example:

string_list = ['', 'abc', '', 'def', '', 'ghi']
non_empty_strings = list(filter(None, string_list))
print(non_empty_strings)
['abc', 'def', 'ghi']

In this example, we used the filter() function to create a new list called non_empty_strings that contains only non-empty strings from the original `

Method 4: Using the filter() and Lambda Functions

You can also use the filter() function in combination with a lambda function to remove empty strings from a list of strings. A lambda function is a small anonymous function without a name. Here is an example:

string_list = ['', 'abc', '', 'def', '', 'ghi']
non_empty_strings = list(filter(lambda x: x != '', string_list))
print(non_empty_strings)
['abc', 'def', 'ghi']

In this example, we used the filter() function and a lambda function to create a new list called non_empty_strings that contains only non-empty strings from the original string_list. The lambda function takes a string x as an argument and returns True if x is not an empty string, and False otherwise. The filter() function applies the lambda function to each element in the string_list and returns a new iterator containing only elements for which the lambda function returns True. We used the list() function to convert the iterator to a list.