十六、深入 Python 字符串
@Author :Runsen
python日常处理字符串较多,本文总结一下Python的日常使用。
什么字符串
字符串是由独立字符组成的一个序列,通常包含在单引号(‘ ’),双引号(”“)
三引号(''' ''')
三引号字符串常用于函数的注释
转义字符
用 \ 开头的字符串,来表示一些特定意义的字符
代码中的'\n',表示一个字符——换行符;'\t'也表示一个字符,四个空格
字符 a,换行,字符 b,然后制表符,最后打印字符 c
最后打印的输出横跨了两行,但是整个字符串 s 仍然只有 5
具体的如下面表格所示。
创建字符串
注意python的字符串是不可变的,这个和元组一样。
python的字符串只能通过创建,从而产生新的字符串
在Java中有可变的字符串,StringBuilder ,每次改变字符串,无需创建新的字符串,时间复杂度为O(1)
但是在python中如果想要改变字符串,往往需要O(n)的时间复杂度,n是新字符串的长度
拼接字符串
在python2中总的时间复杂度就为 O(1) + O(2) + … + O(n) = O(n^2)
但是在python3中 str1 += str2 首先会检测str1 是否有其他的引用
所以在python3中时间复杂度是O(n)
由于列表的 append 操作是 O(1) 复杂度,时间复杂度为 n*O(1)=O(n)。
去空格及特殊符号
split分割
这里还说说 strip() 方法,它比较常用,可以去除字符串前后的空格,不仅如此,它还可以删除首末位置的指定的字符。
查找字符串
查找字符串一个是find,一个是index
find() 方法与 index() 方法的效果一样,它们的最大的区别只在于,找不到内容时的返回值不同,一个返回 -1,一个抛出异常 :
字符串格式化
字符串格式化有两种,一个format,一个%s
%s 表示字符串型,%d 表示整型
一个format使用需要花括号{}做占位符,在format方法中再转入实际的拼接值。
补充:format中的填充与精度与进制
公式::[填充字符][对齐方式 <^>][宽度]
在{}
里继续嵌套一次{}
,并在format的参数里增加一项即可
format中的如何设置精度与进制
具体查看下面的图片,图片来源书籍《Python3基础教程》
扩展:思考两种字符串拼接操作,哪个更好
第一种通过+=
第二种通过列表append
第三种map
对于上面的两种拼接操作,计算运行时间,即可判断出效率。
结果:
对于数据量大的map好过join,join好过 +=
对于数据量小的map 好过 += 好过join
参考:https://time.geekbang.org/column/article/95897
本文已收录 GitHub,传送门~ ,里面更有大厂面试完整考点,欢迎 Star。
版权声明: 本文为 InfoQ 作者【刘润森】的原创文章。
原文链接:【http://xie.infoq.cn/article/2c181edf3d12081f7f097c9ce】。未经作者许可,禁止转载。
评论