Python中字符串的驻留机制和常用方法

本文详细介绍了Python中的字符串驻留机制,通过示例展示了如何通过不同方式赋值字符串并查看内存地址。此外,还涵盖了字符串查找、大小写转换、内容对齐、分割、判断、替换与合并、比较、切片、格式化和编码转换等常用操作。强调了字符串驻留机制在节省内存和提高效率上的作用,并推荐在字符串拼接时使用`join()`方法。
摘要由CSDN通过智能技术生成

在python中字符串是基本数据类型,是一个不可变的字符序列。

字符串的驻留机制

使用三种不同的赋值方式赋值同一个字符串

a = 'python'
b = "python"
c = '''python'''
print(a, id(a))
print(b, id(b))
print(c, id(c))

发现三个变量的内存地址是一样的。

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

字符串驻留机制的优缺点
当需要值相同的字符串时,可以直接从字符串池里拿来使用,避免频繁的创建和销毁,提升效率和节约内存,因此拼接字符串和修改字符串是会比较影响性能的。
在需要进行字符串拼接时建议使用str类型的join方法,而非+,因为join()方法是先计算出所有字符中的长度,然后再拷贝,只new一次对象,效率要比"+"效率高。

字符串查找
# index( ); find( ): 从左边找起
# rindex( ); rfind( ): 从右边找起
s = 'hello,world'
print(s.index('lo'))
print(s.find('lo'))
print(s.rindex('l'))
print(s.rfind('h'))

注:查找不存在的字符串时,index方法会报错,find方法会返回-1(所以建议用find)

print(s.index('k'))
print(s.find('k'))  # 返回-1
print(s.rfind('k'))  # 返回-1
字符串大小写转换操作

转换后,会产生一个新的字符串对象(除非符合字符串驻留机制)

s = 'hello,Python'
a = s.upper()  # 全部大写
print(s, id(s))
print(a, id(a))
print(s.lower(), id(s.lower()))  # 全部小写
print(s.swapcase(), id(s.swapcase()))  # 交换大小写
print(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值