您的当前位置:首页正文

Python 数据结构 字符串

来源:花图问答

定义

  • 一个个字符组成的有序的序列,是字符的集合

  • 使用单引号、双引号、三引号

  • 字符串是不可变对象

  • Python3起,字符串就是Unicode类型

字符串join连接

  • 'string'.join(iterable) -> str

    • 将可迭代对象连接起来,使用string作为分隔符

    • 可迭代对象本身的元素都是字符串

    • 返回一个新的字符串

字符串+连接

  • + -> str

    • 将2个字符串连接在一起

    • 返回一个新的字符串

字符串分割

分割字符串的方法分为两类

  • split系

    • 将字符串按照分隔符分割成若干字符串,并返回 列表
  • split(sep=None, maxsplit=-1) -> list of strings

    • 从左至右
    • sep指定分割字符串,缺省的情况下空白字符作为分隔符
    • maxsplit指定分割的次数,-1表示遍历整个字符串
  • rsplit(sep=None, maxsplit=-1) -> list of strings

    • 从右至左
    • sep指定分割字符串,缺省的情况下空白字符串作为分隔符
    • maxsplit指定分割的次数,-1表示遍历整个字符串
  • splitlines([keepends=False]) -> list of strings

    • 按照行来切分字符串
    • keepends指的是否保留行分隔符
    • 行分隔符包括\n、\r\n、\r 等
  • partition系

    • 将字符串按照分隔符分割成2段,返回这2段和分隔符的元组
  • partition(sep) -> (head,sep,tail)

    • 从左至右,遇到分隔符就把字符串分割成两部分,返回头,分隔符、尾三部分的三元组;如果没有找到分隔符,就返回头、2个空元素的三元组
    • sep分割字符串,必须制定
  • rpartition(sep) -> (head,sep,tail)

    • 从右至左,遇到分隔符就把字符串分割成两部分,返回头、分隔符、尾三部分的三元组;如果没有找到分隔符,就返回2个空元素和尾的三元组

字符串大小写

  • upper()

    • 全大写
  • lower()

    • 全小写
  • 大小写,做判断的时候用

  • swapcase()

    • 交互大小写

字符串修改

  • replace(old,new[,count]) - str

    • 字符串中找到匹配替换为新子串,返回新字符串
    • count表示替换几次,不指定就是全部替换
  • strip([char]) -> str

    • 从字符串两端去除指定的字符集chars中的所有字符

    • 如果chars没有指定,去除两端的空白字符

    • lstrip([char]) -> str

      • 从左开始
    • rstrip([char]) -> str

      • 从右开始

字符串查找

  • find(sub[,start[,end]]) -> int

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

    • 在指定的区间[start[,end]],从左至,查找子串sub,找到返回索引,没有找到返回-1

时间复杂度

  • index和count方法都是O(n)
  • 随着列表数据规模的增大,而效率下降

字符串判断

  • endswith(suffix[, start[, end]]) -> bool

    • 在指定的区间[start,end],字符串是否是suffix结尾
  • startswith(prefix[, start[, end]]) -> bool

    • 在指定的区间[start,end],字符串是否是prefix开头

字符串判断is系列

  • isalnum() -> 是否是字母和数字组成
  • isalpha() -> 是否是字母
  • isdecimal() -> 是否包含十进制数字
  • isdigit() -> 是否全部是数字(0~9)
  • isdentifier() -> 是不是字母和下划线开头,其他都是字母、数字、下划线
  • islower() -> 是否都是小写
  • isupper() -> 是否全部大写
  • isspace() -> 是否只包含空白字符串