Python String translate() Method
The translate() method returns a new string in which characters have been replaced using a translation table. This is a powerful method when you want to replace or remove multiple characters in a single operation.
Syntax
string.translate(table)
Parameters:
table– A translation table created usingstr.maketrans().
Returns:
- A new string with specified characters replaced (or removed if mapped to
None).
How to Create a Translation Table
Use the str.maketrans() function to build the table. You can map one character to another, or multiple at once.
Example:
table = str.maketrans("abc", "123")
This means: replace 'a' → '1', 'b' → '2', 'c' → '3'
Example: Basic Character Replacement
text = "abc cab"
table = str.maketrans("abc", "123")
result = text.translate(table)
print(result)
123 312
Example: Remove Characters
To remove characters, map them to None.
text = "hello world!"
table = str.maketrans("", "", "aeiou")
result = text.translate(table)
print(result)
hll wrld!
Use Case: Replacing or Deleting Multiple Characters
- Efficient for replacing multiple characters in one go.
- Great for creating filters, obfuscation, or cleaning up text data.
Common Mistakes
- Using
translate()without creating a table usingmaketrans(). - Mismatch in string lengths when using
str.maketrans("abc", "12")– lengths must match.
Interview Tip
translate() is highly efficient when cleaning strings, replacing digits, removing punctuation, or transforming inputs based on character rules.
Summary
translate()modifies a string using a mapping table.- Use
str.maketrans()to create that table. - Supports both character replacement and deletion.
Practice Problem
Write a program that replaces all vowels in a string with '*' using translate().
text = "I love Python!"
vowels = "aeiouAEIOU"
replace_with = "*" * len(vowels)
table = str.maketrans(vowels, replace_with)
print(text.translate(table))
Expected Output:
* l*v* Pyth*n!
Comments
Loading comments...