字符串的创建与驻留机制
字符串:Python中字符串是一种基本数据类型,同时也是一个不可变的字符序列。
什么叫字符串的驻留机制?
仅保留一份相同且不可变的字符串的方法,不同的值则被存放在字符串的驻留池中;
python中的驻留机制对相同的字符串只保留一份,后续创建相同字符串时,不会开辟新空间,
而是把该字符串的地址赋给新创建的变量。
a = 'Python'
b = "Python"
c = '''Python'''
# Python 2006693472880 Python 2006693472880 Python 2006693472880
print(a,id(a),'\t',b,id(b),'\t',c,id(c))
驻留机制的几种情况(交互模式):
(1) 字符串的长度为 0 或 1 时
(2) 符合标识符的字符串
(3) 字符串只在编译时进行驻留,而非运行时
(4) [-5,256]之间的整数数字
sys 中的 intern 方法强制两个字符串指向同一个对象
PyCharm对字符串进行了优化处理
字符串驻留机制的优缺点
1)当需要值相同的字符串时,可以直接从字符串池里拿来使用。
好处:可以避免频繁的创建和销毁,从而提升系统运行效率,节约内存使用。
【拼接字符串和修改字符串会影响程序性能】
2) 在需要进行字符串拼接时,建议使用str类型的join()方法,而不要使用 +。
原因:join()方法是先计算出所有字符串中的长度,然后进行操作,只会 new 一次对象。
效率比 “+”更高。