开篇
上一期介绍了字符串及其切片用法,相信你已经掌握。
那么这一期,我们就来学习一下字符串的增删改查
等一系列方法,正是因为有了这些方法,你才能像呼吸一样自然地操作字符串。
需要指出的是,字符串是不可变类型,也就是说,只要一个字符串确定了,那么任何操作都不能修改该字符串。
此时的你,可能会很疑惑:既然字符串是不可变类型,那何来增删改
这些操作呢?
解答这个问题的过程涉及到了内存,下面我将用画图的方式解释:
将内存看作一个大房子,房子中有许多小房间(地址单元),将它们分别编号为0
,1
,2
,3
。
![ec71e5ff522b4856b43626c05f73f21c.png](https://img-blog.csdnimg.cn/img_convert/ec71e5ff522b4856b43626c05f73f21c.png)
在运行s='great'
这一句代码时,会给变量s
分配一个房间,假设分配的房间号是0
:
![4b6f3ef2a232c7a07bbed9bba152a45f.png](https://img-blog.csdnimg.cn/img_convert/4b6f3ef2a232c7a07bbed9bba152a45f.png)
现在,我想要修改变量s
中的内容,由great
改成gre!
。由于字符串是不可变数据类型,所以不能直接在变量s
所在的小房间(地址单元)内进行修改。
正确的做法是新开一个小房间,假如新开的小房间是1
号,则首先会将s
的前3个字符复制到房间1
(这里用到了切片,你还记得吗),然后在后面加一个!
。这样,房间1
内所保存的就是我们想要的结果了。
以上文字描述过程对应代码如下:
'great'
![6f0099c5bb6ea807fdfba41221c93fb5.png](https://img-blog.csdnimg.cn/img_convert/6f0099c5bb6ea807fdfba41221c93fb5.png)
看,原来的字符串变量s
和修改后的字符串变量new
在两个不同的房间。可以肯定的是,