Skip to main content

Section 7.12 Strings are Immutable

One final thing that makes strings different from some other Python collection types is that you are not allowed to modify the individual characters in the collection. It is tempting to use the [] operator on the left side of an assignment, with the intention of changing a character in a string. For example, in the following code, we would like to change the first letter of greeting.
Instead of producing the output Jello, world!, this code produces the runtime error TypeError: 'str' object does not support item assignment.
Strings are immutable, which means you cannot change an existing string. The best you can do is create a new string that is a variation on the original.
The solution here is to concatenate a new first letter onto a slice of greeting. This operation has no effect on the original string.

Checkpoint 7.12.1.

    What is printed by the following statements:
    s = "Wall"
    s[0] = "C"
    print(s)
    
  • Wall
  • Assignment is not allowed with strings.
  • Call
  • Assignment is not allowed with strings.
  • Error
  • Yes; strings are immutable.