字符串构造

字符串str

  • 一个个字符组成的有序的序列,是字符的集合
  • 使用单引号、双引号、三引号引住的字符序列
  • 字符串是不可变对象,是字面常量

Python3起,字符串都是Unicode类型

 

r前缀:所有字符都是本来的意思,没有转义
f前缀:3.6开始,使用变量插值

 

索引

字符串是序列,支持下标访问。但不可变,不可以修改元素。不可超界

 

 


字符查找

  • find(sub[, start[, end]]) -> int
  •          在指定的区间[start, end),从左至右,查找子串sub
  •          找到返回正索引,没找到返回-1
  • rfind(sub[, start[, end]]) -> int
  •          在指定的区间[start, end),从右至左,查找子串sub
  •          找到返回正索引,没找到返回-1

这两个方法只是找字符串的方向不同,返回值一样。找到第一个满足要求的子串立即返回。特别注意返回值,找不到返回的是负数-1

这两个方法效率高吗?要不要用?
这两个方法效率真不高,都是在字符串中遍历搜索,但是如果找子串工作必不可少,那么必须这么做,
但是能少做就少做。

  • index(sub[, start[, end]]) -> int
  •         在指定的区间[start, end),从左至右,查找子串sub
  •         找到返回正索引,没找到抛出异常ValueError
  • rindex(sub[, start[, end]]) -> int
  •         在指定的区间[start, end),从左至右,查找子串sub
  •         找到返回正索引,没找到抛出异常ValueError


index方法和find方法很像,不好的地方在于找不到抛异常。推荐使用find方法。

 

count(sub[, start[, end]]) -> int
在指定的区间[start, end),从左至右,统计子串sub出现的次数

 

时间复杂度
findindexcount方法都是O(n)
随着字符串数据规模的增大,而效率下降

len(string)
返回字符串的长度,即字符的个数

 

连接

+加号
将2个字符串连接起来
返回一个新的字符串

join方法
sep.join(iterable)
使用指定字符串作为分隔符,将可迭代对象中字符串使用这个分隔符拼接起来
可迭代对象必须是字符串
返回一个新的字符串

 

 





posted @ 2022-07-28 16:48  45645+56  阅读(87)  评论(0)    收藏  举报