02_python基础-字符串驻留机制

字符串驻留机制

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

驻留机制的几种情况

1)字符串的长度为0或1时;
2)符合标志符的字符串;(只有字母数字和_组合才可以,如abc%就不行,因为有%)
3)字符串只在编译时进行驻留,而非运行时;
4)[-5, 256]之间的整数数字。

解释3):举例如下
a = 'abc'
b = 'ab' + 'c'
c = ''.join(['ab', 'c'])
print(a is b)  # True 地址相同
print(a is c)  # False 地址不同
'''a和b地址相同,是因为b的值是在运行前就已经连接好字符串了,而c的值是利用join函数对列表的数据进行连接的,也就是说join操作是在程序运行时候才完成的赋值,当然会去开辟空间存储abc的值,并没有产生驻留'''

字符串驻留机制优缺点

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

posted @   漂洋过海去见你  阅读(120)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
点击右上角即可分享
微信分享提示