Shane
Shane

Reputation: 4983

How do I modify a single character in a string, in Python?

How do I modify a single character in a string, in Python? Something like:

 a = "hello"
 a[2] = "m"

'str' object does not support item assignment.

Upvotes: 18

Views: 18136

Answers (4)

Mark Byers
Mark Byers

Reputation: 837966

Strings are immutable in Python. You can use a list of characters instead:

a = list("hello")

When you want to display the result use ''.join(a):

a[2] = 'm'
print ''.join(a)

Upvotes: 16

Coding District
Coding District

Reputation: 11921

It's because strings in python are immutable.

Upvotes: 3

JoshD
JoshD

Reputation: 12824

In python, string are immutable. If you want to change a single character, you'll have to use slicing:

a = "hello"
a = a[:2] + "m" + a[3:]

Upvotes: 12

detly
detly

Reputation: 30332

Try constructing a list from it. When you pass an iterable into a list constructor, it will turn it into a list (this is a bit of an oversimplification, but usually works).

a = list("hello")
a[2] = m

You can then join it back up with ''.join(a).

Upvotes: 8

Related Questions