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一次对象,效率要比“+”高
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App