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一次对象,效率要比“+”高

浙公网安备 33010602011771号