![在这里插入图片描述](https://img-blog.csdnimg.cn/a39c3d082b2b444580902b28ba228f18.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5p2O54ix5a2m5LmgMjMz,size_12,color_FFFFFF,t_70,g_se,x_16)
驻留机制
仅保存一份相同且不可变字符串的方法。
- 字符串的驻留机制指:对相同的字符串只保留一份拷贝,后面创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋给新创建的变量。
a='python'
b="python"
c='''python'''
print(a,id(a))
print(b,id(b))
print(c,id(c))
运行结果:
python 1531278147184
python 1531278147184
python 1531278147184
- 驻留机制的几种情况(交互模式)(win+R——>cmd)
- 字符串的长度为0,1
- 符合标识符的字符串(标识符:含字母数字下划线的字符串)
- 字符串只在编译时进行驻留,而非运行时
- [-5,256]之间的整数
- 强制让2个字符串指向同一地址
import sys
a='xxx'
b='xxx'
a=sys.intern(b)
a is b ##结果为True
- pycharm对字符串进行了优化处理
- 好处:避免频繁创建和销毁,可提升效率节约内存
在字符串拼接时建议使用 .join方法而非+
将列表/元组转为字符串类型:
','.join(要转换的变量)
,其中引号内的内容指字符串的连接符号
lst=[xxxxxx]
print(','.join(lst)):#x,x,x,x,x,x
t=(xxxxxx)
print(' '.join(t))#x x x x x x
字符串的常用操作
查询操作
与列表类似
- index():查找子串第一次出现的位置,若不存在抛出异常ValueError
- rindex():查找子串最后一次出现的位置,若不存在抛出异常ValueError
- find():查找子串第一次出现的位置,若不存在则返回-1
- rfind():查找子串最后一次出现的位置,若不存在则返回-1
s='helloworld,helloworld'
print(s.index('ld')) #8
print(s.find('ld')) #8
print(s.rindex('ld')) #19
print(s.rfind('ld')) #19
大小写转换操作
- upper():所有字符转为大写字母
- lower():所有字符转为小写字母
- swapcase():字符串中所有大写字母转成小写字母,小写字母转为大写字母
- capitalize():第一个字符转为大写,其他字符转为小写
- title():字符串中所有单词的第一个字符转为大写,其余转为小写
注意:转换操作后地址改变
s='hello python'
print(s,id(s)) #hello pyhton 1877257762736
s1=s.upper() #HELLO PYTHON 1877259552752
print(s1,id(s1))
s2=s1.lower() #hello python 1877259587312
print(s2,