To remove spaces from a string in Python, use the str.replace() method.
This method takes two arguments:
- The first argument is the string to be replaced.
- The second argument is the string that replaces the string.
string = "This is a test" nospaces = string.replace(" ", "") print(nospaces)
This is the quick answer.
In this guide, we take a look at other common situations related to removing spaces from a string.
How to Remove White Spaces in Python String
In Python, a string is an immutable type. This means it cannot be directly modified. This means any method that manipulates strings actually creates a new string.
In Python, there are many ways you can replace blank spaces:
- str.join() with str.split()
Let’s go through each of these options and when you should use them.
1. str.strip()—Remove Leading and Trailing Spaces
The str.strip() method removes the leading and trailing whitespace from a string.
string = " This is a test " modified = string.strip() print(modified)
This is a test
2. str.replace()—Remove All White Spaces
To wipe out all the white spaces from a string, you can use the str.replace() method.
This method takes two mandatory arguments:
- The target strings you want to get rid of.
- The string that replaces all the target strings.
In other words, to remove the white spaces, replace each white space with an empty string.
string = "This is a test" modified = string.replace(" ", "") print(modified)
3. str.join() and str.split()—Remove Duplicate White Spaces
To get rid of tabs, newlines, or any other duplicate whitespaces use str.join() method with str.split().
This works such that:
- The str.split() method splits the string into a list of words without spaces.
- The str.join() takes a list of words and joins them using the str as a separator.
For example, let’s remove the duplicate white spaces but leave single white spaces:
before = "This \t is a \n test \n\n \t let's modify this" after = " ".join(before.split()) print(before) print(after)
This is a test let's modify this This is a test let's modify this
4. str.translate()—Remove Tabs, Newlines, and Other White Spaces
To get rid of all the white spaces, tabs, and newlines, you can use the str.translate() method with str.maketrans() method.
The str.translate() method replaces strings according to a translation table created by str.maketrans() method. In short, the str.maketrans() method works such that it takes three arguments:
- A string to be replaced.
- A string that specifies the characters to be replaced in the first argument.
- A list of characters to be removed from the original string. To remove white spaces, use string.whitespaces, which is a list of the types of blank spaces.
import string before = "This \t is a \n test \n\n \t let's modify this" after = before.translate(str.maketrans("", "", string.whitespace)) print(before) print(after)
5. re.sub()—Replace White Spaces with Empty Strings
You can use it to match patterns in a string. You can for example use regex to find phone numbers or email addresses from a text document.
I am not going to go into more detail about regex, but here is a great article you can check.
To use Regular Expressions in Python to remove white spaces from a string:
- Import the regex module, re, to your project.
- Define a regex pattern that matches white spaces.
- Substitute each white space with a blank space using re.sub() method.
import re string = "This is a test" # Regular expression that matches each white space whitespace = r"\s+" # Replace all mathces with an empty string nospaces = re.sub(whitespace, "", string) print(nospaces)