Python错误集锦:修改字符串时提示TypeError: ‘str’ object does not support item assignment

原文链接:http://www.juzicode.com/archives/3799

错误提示:

修改字符串时提示:TypeError: ‘str’ object does not support item assignment

#juzicode.com/vx:桔子code
s = 'www.juzicode.com'
s[3] = 'x'
print(s)
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-8-aba9b8f00c9f> in <module>
      1 #juzicode.com/vx:桔子code
      2 s = 'www.juzicode.com'
----> 3 s[3] = 'x'
      4 print(s)

TypeError: 'str' object does not support item assignment

错误原因:

1、字符串本身不是可变对象,不支持索引方式修改。

解决方法:

1、可以用拼接的方法生成新的字符串:

#juzicode.com/vx:桔子code
s = 'www.juzicode.com'
print(id(s))
s = s[:3]+'x'+s[4:]
print(s)
print(id(s))
2572991250224
wwwxjuzicode.com
2572990478976

从上面这个例子可以看到,修改s前后实际指向了不同的对象实例,原来的s指向的是2572991250224,经过修改后s指向了2572990478976,所以原来的s并没有被修改,而是指向了另外一个实例。

扩展内容:

  1. 好冷的Python~默认参数、可变对象和不可变对象
  2. Python基础教程2b–数据类型-string(字符串)


关注微信公众号:“桔子code”,欢迎后台留言撩我,我会尽我所能为你解惑Python,C等编程知识

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注