Python字符串(String类型)的驻留机制和切片操作

1、驻留机制:

仅保存一份相同且不可变字符串的方法,不同的值存放在字符串的驻留池中,python的驻留机制对相同的字符串只保留一份拷贝,后续遇见相同字符串时,不会开辟新的空间,而是把该字符串的地址赋值给新创建的变量

1.1、作用:

节省内存空间

1.2、如何查看程序“对象”在内存中的地址

使用 id (对象名) 的形式

例如:

s1 = 'python'
s2 = 'python'
s3 = 'python'
print(f's1 = {s1}, id(s1) = {id(s1)}')
print(f's2 = {s2}, id(s2) = {id(s2)}')
print(f's3 = {s3}, id(s3) = {id(s3)}')

结果:

1.3、注意:

①可以看到储存字符串s1 , s2 , s3的地址是一样的

②基本数据类型(int , float......)不需要考虑地址问题,只有对象类型需要考虑地址,字符串属于对象类型

③字符串对象内容发生变化,改变的是该字符串引用的地址,而不是在原地址上进行内容覆盖

例如:

s1 = 'python'
s2 = 'python'
s3 = 'python'
print(f's1 = {s1}, id(s1) = {id(s1)}')
print(f's2 = {s1}, id(s2) = {id(s2)}')
print(f's1 = {s3}, id(s3) = {id(s3)}')
s1 = 'hello world'     # 变量s1的内容发生了变化
print(f's1 = {s1}, id(s1) = {id(s1)}')
print(f's2 = {s1}, id(s2) = {id(s2)}')
print(f's1 = {s3}, id(s3) = {id(s3)}')

结果:

说明:

我们先把字符串“python”赋值给变量s1,然后我们在中途给变量s1赋予了心得字符串“hello world”。可以看到新的字符串并不是在原地址进行覆盖,而是储存在新的地址里。

2、切片操作:

2.1、含义:

将原来的字符串进行切割,切成一小部分

2.2、操作图解:

2.3、语法及解释:

语法:[start : stop : step]

start:开始(如果不写默认重头开始,从0开始)

stop:结束(如果不写默认到结尾)

step:步长(默认为1)

2.4、索引(index)

索引分为正向索引和逆向索引,上面一行是逆向索引(从-1开始),下面一行是正向索引(从0开始)

2.5、示例:

str[6:12:1] 从6开始切,切到12这个位置(不包含12),步长step默认为1

结果:

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值