Skip to content
Home / Fundamentals

How to remove all whitespaces in a string in Python

In Python, whitespaces are characters that represent horizontal or vertical space in a document. These characters can include spaces, tabs, and newline characters. Sometimes, you may want to remove all of these whitespaces from a string in Python. Here are a few methods you can use to accomplish this task:

Method 1: Using replace()

The replace() method is a built-in function in Python that allows you to replace a specific character or set of characters with another character or set of characters. You can use this method to remove all whitespaces from a string by replacing all occurrences of whitespaces with an empty string.

Here is an example of how to use the replace() method to remove all whitespaces from a string:

# Initialize the string with whitespaces
string = "   This   is   a   string   with   whitespaces   "

# Replace all whitespaces with an empty string
string = string.replace(" ", "")

# Print the modified string
print(string)  # Output: "Thisisastringwithwhitespaces"

Method 2: Using join() and a list comprehension

You can also use the join() method and a list comprehension to remove all whitespaces from a string in Python. The join() method is a built-in function that combines a list of strings into a single string, using a separator string.

To remove all whitespaces from a string using join(), you can first split the string into a list of words using the split() method. Then, you can use a list comprehension to iterate over each word in the list, and return a new list that contains only the words with no whitespaces. Finally, you can use the join() method to combine the elements of the new list into a single string, with no separator string.

Here is an example of how to use join() and a list comprehension to remove all whitespaces from a string:

# Initialize the string with whitespaces
string = "   This   is   a   string   with   whitespaces   "

# Split the string into a list of words
words = string.split()

# Use a list comprehension to iterate over each word and return a new list with no whitespaces
words_no_whitespaces = [word for word in words if word.strip() != ""]

# Use the join() method to combine the elements of the new list into a single string
string_no_whitespaces = "".join(words_no_whitespaces)

# Print the modified string
print(string_no_whitespaces)  # Output: "Thisisastringwithwhitespaces"

Method 3: Using join() and a generator expression

You can also use the join() method and a generator expression to remove all whitespaces from a string in Python. A generator expression is similar to a list comprehension, but it returns a generator object that produces the values one at a time, rather than creating a whole list in memory.

To remove all whitespaces from a string using join() and a generator expression, you can follow the same steps as in the previous method, but use a generator expression instead of a list comprehension to iterate over the words in the list.

Here is an example of how to use join() and a generator expression to remove all whitespaces from a string:

# Initialize the string with whitespaces
string = "   This   is   a   string   with   whitespaces   "

# Split the string into a list of words
words = string.split()

# Use a generator expression to iterate over each word and return a generator object that produces the values one at a time
words_no_whitespaces = (word for word in words if word.strip() != "")

# Use the join() method to combine the elements of the generator object into a single string
string_no_whitespaces = "".join(words_no_whitespaces)

# Print the modified string
print(string_no_whitespaces)  # Output: "Thisisastringwithwhitespaces"

Method 4: Using translate() and a translation table

The translate() method is a built-in function in Python that allows you to translate characters in a string using a translation table. You can use this method to remove all whitespaces from a string by creating a translation table that removes all whitespaces from the string.

To create a translation table, you can use the string.maketrans() method, which returns a translation table that can be used with the translate() method. The string.maketrans() method takes two strings as arguments: the first string contains the characters that you want to replace, and the second string contains the characters that you want to use as replacements.

Here is an example of how to use translate() and a translation table to remove all whitespaces from a string:

# Import the string module
import string

# Initialize the string with whitespaces
string = "   This   is   a   string   with   whitespaces   "

# Create a translation table that removes all whitespaces
trans_table = string.maketrans("", "", string.whitespace)

# Use the translate() method to remove all whitespaces from the string
string_no_whitespaces = string.translate(trans_table)

# Print the modified string
print(string_no_whitespaces)  # Output: "Thisisastringwithwhitespaces"