Python replace range of characters in string

Using Python to replace characters in a string

In this short tutorial, we look at how you could use Python to replace a character in a string. We break down the code to help you understand the function.

Table of Contents: Python replace character in string

  • Python replace()
  • Code and Explanation
  • Closing thoughts - Python replace character in string

Unlike lists, Python strings are immutable and hence they cannot be changed once initialized. Because of this, methods used to edit lists cannot be used on a string. However, Python has a few functions that can replace characters in strings.

The Python replace() method is used to find and replace characters in a string. It requires a substring to be passed as an argument; the function finds and replaces it. The replace() method is commonly used in data cleaning.

However, given strings are immutable, the function replaces characters on a copy of the original string. So ensure you save the new string in case you intend to further use it.

Syntax of replace():

string.replace(old, new, count)

Here “string” refers to the string you are looking to replace characters with.

Parameter (Python replace character in string):

  • Old - Required, the substring you are looking to replace.
  • New - Required, the substring you are looking to replace the old string with.
  • Count - Optional, specifies the number of times you want the string to be replaced. If left empty, all occurrences will be replaced.

Code and Explanation:

# use of replace() method 
 
string = "Join our community of top freelancers"
  
# replace "top" with "top 1%"
print(string.replace("top", "top 1%"))
 
# printing the original string
print(string)

The above code snippet outputs the following:

Join our community of top 1% freelancers
Join our community of top freelancers

As you can see the substring was replaced but the original string still remains the same. Also, given we did not specify a count argument, all the occurrences were replaced.

Let us look at a case where we replace multiple instances of a string.

string = "python is a programming language"

# replace "p" with "P" once
print(string.replace("p", "P",1))
 
# replace "p" with "P" once
print(string.replace("p", "P"))

In the above code snippet, we have first replaced “p” only once whereas in the second print statement we have not passed a counter-argument. This means all the occurrences would be replaced.

The output is as follows:

Python is a programming language
Python is a Programming language

Closing thoughts - Python replace character in string:

There are other methods that can be used apart from the replace method to replace characters in strings. However, these methods would involve typecasting or slicing, and concatenation. Although these methods work, they are not preferred over the replace() method. However, I would recommend you give them a read and understand the concept.

In Python everything is object and string are an object too. Python string can be created simply by enclosing characters in the double quote.

For example:

var = “Hello World!”

In this tutorial, we will learn –

  • Accessing Values in Strings
  • Various String Operators
  • Some more examples
  • Python String replace() Method
  • Changing upper and lower case strings
  • Using “join” function for the string
  • Reversing String
  • Split Strings

Accessing Values in Strings

Python does not support a character type, these are treated as strings of length one, also considered as substring.

We use square brackets for slicing along with the index or indices to obtain a substring.

var1 = "Guru99!"
var2 = "Software Testing"
print ("var1[0]:",var1[0])
print ("var2[1:5]:",var2[1:5])

Output

var1[0]: G
var2[1:5]: oftw 

Various String Operators

There are various string operators that can be used in different ways like concatenating different string.

Suppose if a=guru and b=99 then a+b= “guru99”. Similarly, if you are using a*2, it will “GuruGuru”. Likewise, you can use other operators in string.

OperatorDescriptionExample
[] Slice- it gives the letter from the given index a[1] will give “u” from the word Guru as such ( 0=G, 1=u, 2=r and 3=u)
x="Guru"
print (x[1])
[ : ] Range slice-it gives the characters from the given range x [1:3] it will give “ur” from the word Guru. Remember it will not consider 0 which is G, it will consider word after that is ur.
x="Guru" 
print (x[1:3])
in Membership-returns true if a letter exist in the given string u is present in word Guru and hence it will give 1 (True)
x="Guru" 
print ("u" in x)
not in Membership-returns true if a letter exist is not in the given string l not present in word Guru and hence it will give 1
x="Guru" 
print ("l" not in x)
r/R Raw string suppresses actual meaning of escape characters. Print r’\n’ prints \n and print R’/n’ prints \n
% – Used for string format %r – It insert the canonical string representation of the object (i.e., repr(o))
%s- It insert the presentation string representation of the object (i.e., str(o))
%d- it will format a number for display
The output of this code will be “guru 99”.
name = 'guru'
number = 99
print ('%s %d' % (name,number))
+ It concatenates 2 strings It concatenate strings and gives the result
x="Guru" 
y="99" 
print (x+y)
* Repeat It prints the character twice.
x="Guru" 
y="99" 
print (x*2)

Some more examples

You can update Python String by re-assigning a variable to another string. The new value can be related to previous value or to a completely different string all together.

x = "Hello World!"
print(x[:6]) 
print(x[0:6] + "Guru99")

Output

Hello
Hello Guru99

Note : – Slice:6 or 0:6 has the same effect

Python String replace() Method

The method replace() returns a copy of the string in which the values of old string have been replaced with the new value.

oldstring = 'I like Guru99' 
newstring = oldstring.replace('like', 'love')
print(newstring)

Output

I love Guru99

Changing upper and lower case strings

In Python, you can even change the string to upper case or lower case.

string="python at guru99"
print(string.upper())

Output

PYTHON AT GURU99

Likewise, you can also do for other function as well like capitalize

string="python at guru99"		
print(string.capitalize())

Output

Python at guru99

You can also convert your string to lower case

string="PYTHON AT GURU99"
print(string.lower())

Output

python at guru99

Using “join” function for the string

The join function is a more flexible way for concatenating string. With join function, you can add any character into the string.

For example, if you want to add a colon (:) after every character in the string “Python” you can use the following code.

print(":".join("Python"))

Output

P:y:t:h:o:n

Reversing String

By using the reverse function, you can reverse the string. For example, if we have string “12345” and then if you apply the code for the reverse function as shown below.

string="12345"		
print(''.join(reversed(string)))

Output

54321

Split strings is another function that can be applied in Python let see for string “guru99 career guru99”. First here we will split the string by using the command word.split and get the result.

word="guru99 career guru99"		
print(word.split(' '))

Output

['guru99', 'career', 'guru99']

To understand this better we will see one more example of split, instead of space (‘ ‘) we will replace it with (‘r’) and it will split the string wherever ‘r’ is mentioned in the string

word="guru99 career guru99"		
print(word.split('r'))

Output

['gu', 'u99 ca', 'ee', ' gu', 'u99']

Important Note:

In Python, Strings are immutable.

Consider the following code

x = "Guru99"
x.replace("Guru99","Python")
print(x)

Output

Guru99

will still return Guru99. This is because x.replace(“Guru99″,”Python”) returns a copy of X with replacements made

You will need to use the following code to observe changes

x = "Guru99"
x = x.replace("Guru99","Python")
print(x)

Output

Python

Above codes are Python 3 examples, If you want to run in Python 2 please consider following code.

Python 2 Example

#Accessing Values in Strings
var1 = "Guru99!"
var2 = "Software Testing"
print "var1[0]:",var1[0]
print "var2[1:5]:",var2[1:5]
#Some more examples
x = "Hello World!"
print x[:6] 
print x[0:6] + "Guru99"
#Python String replace() Method
oldstring = 'I like Guru99' 
newstring = oldstring.replace('like', 'love')
print newstring
#Changing upper and lower case strings
string="python at guru99"
print string.upper()
string="python at guru99"		
print string.capitalize()
string="PYTHON AT GURU99"
print string.lower()
#Using "join" function for the string
print":".join("Python")		
#Reversing String
string="12345"		
print''.join(reversed(string))
#Split Strings
word="guru99 career guru99"		
print word.split(' ')
word="guru99 career guru99"		
print word.split('r')
x = "Guru99"
x.replace("Guru99","Python")
print x
x = "Guru99"
x = x.replace("Guru99","Python")
print x

Output

var1[0]: G
var2[1:5]: oftw
Hello
Hello Guru99
I love Guru99
PYTHON AT GURU99
Python at guru99
python at guru99
P:y:t:h:o:n
54321
['guru99', 'career', 'guru99']
['gu', 'u99 ca', 'ee', ' gu', 'u99']
Guru99
Python

Python has introduced a .format function which does way with using the cumbersome %d and so on for string formatting.

» Learn more about Python String split()

Summary:

Since Python is an object-oriented programming language, many functions can be applied to Python objects. A notable feature of Python is its indenting source statements to make the code easier to read.

  • Accessing values through slicing – square brackets are used for slicing along with the index or indices to obtain a substring.
  • In slicing, if range is declared [1:5], it can actually fetch the value from range [1:4]
  • You can update Python String by re-assigning a variable to another string
  • Method replace() returns a copy of the string in which the occurrence of old is replaced with new.
  • Syntax for method replace: oldstring.replace(“value to change”,”value to be replaced”)
  • String operators like [], [ : ], in, Not in, etc. can be applied to concatenate the string, fetching or inserting specific characters into the string, or to check whether certain character exist in the string
  • Other string operations include
  • Changing upper and lower case
  • Join function to glue any character into the string
  • Reversing string
  • Split string

How do you replace multiple characters in a string in Python?

Replace Multiple Characters in a String in Python.
Use str.replace() to Replace Multiple Characters in Python..
Use re.sub() or re.subn() to Replace Multiple Characters in Python..
translate() and maketrans() to Replace Multiple Characters in Python..

How do you change a range of a string in Python?

Below are 6 common methods used to replace the character in strings while programming in python..
1) Using slicing method..
2) Using replace() method..
3) Using the list data structure..
4) Replace multiple characters with the same character..
5) Replace multiple characters with different characters..
6) Using regex module..

How do you replace certain letters in Python?

The Python replace() method is used to find and replace characters in a string. It requires a substring to be passed as an argument; the function finds and replaces it. The replace() method is commonly used in data cleaning.

How do you replace a character in a specific position in a string in Python?

Strings in Python are immutable meaning you cannot replace parts of them. You can however create a new string that is modified. Mind that this is not semantically equivalent since other references to the old string will not be updated.