Python容器篇 1 -- 字符串

Python中有5种类型的容器

  1. 字符串
  2. 列表
  3. 元组
  4. 字典
  5. 集合

字符串

表现形式: "str"和'str'或者"""str"""和'''str'''

  • 单引号, 双引号表示的字符串通常用在变量赋值中
  • 而三引号表示的字符串通常来说是注释

访问字符串中的元素

  • 通过下标/索引的方式去访问单个元素
  • 通过切片的方式截取多个元素

下标/索引的顺序

  • 正序: 从0开始, 最后一个元素是 len(str)-1
  • 倒序: 从-1开始, 最后一个元素是 -len(str)

切片: [start: end: step]

  • 从第start位元素开始, 直到end之前一位元素为止, 间隔是step
# 举例: 
str = "ABCDEFG"
str[0:4:1]  # 是 "ABCD"
str[-1:-4:-1]  # 是 "GFE"
  • 如果省略步长, 那么默认值是 1, 如果省略开始位, 那么默认值是0, 省略结束位, 默认值是len(str)
  • 取所有元素 str[ : ] str[ : : ]
  • 从下标为x的元素一直截取到结尾 str[x: ]
  • 从第一个元素开始一直截取到y前面的一个元素 str[ :y]
  • 以步长为a正序访问所有元素 str[ : : a]
  • 以步长为b倒序访问所有元素 str[ : : -b]
  • 反转字符串(倒序访问每一个元素) str[ : : -1]
  • 切片截取操作不会影响原字符串变量, 而是生成一个新的字符串变量

字符串类型的常用方法

查找

  1. str.find("要查的部分", start, end) # find方法时字符串特有的查找方法
    • 默认start=0, end=len(str)
    • 找到返回 "要查的部分" 开始位置的下标
    • 找不到返回 -1
  2. str.index("要查的部分", start, end)
    • 默认start=0, end=len(str)
    • 找到返回 "要查的部分" 开始位置的下标
    • 找不到则会直接抛出异常 ValueError

统计出现次数

  1. str.count("要统计的部分", start, end)
    • 默认start=0, end=len(str)
    • 返回数字型结果

替换

  1. str.replace(str1, str2, count)
    • 把str1替换成str2, 置于替换几次就看count了
    • 默认 count=str.count(str1), 也就是全部替换

分隔

  1. str.split(str="分隔依据", maxsplit)
    • maxsplit存在, 那么仅仅把字符串分成 maxsplit+1 个部分
    • 分隔依据可以不写, 默认是按照空白字符('''\t''\n')来分隔
    • 如果存在分隔依据, 那么按照分隔依据去分隔, 但是结果中会把分隔依据剔除掉
    • 得到的结果默认是list类型的一个列表 <class 'list'>

插空加入

  1. str.join(alist)
    • 把字符串str当作内容插入到alist中形成另一个字符串

替换, 分隔, 插空加入这三种操作都不会影响原来的str, 而是返回一个新的str

举例: 
alist = ["a", "b", "c"] 
str="_"
str.join(alist)的结果是 "a_b_c"

其他比较重要的常用方法

大小写变换

  • 第一个字符如果是字母就变成大写 .capitalize() # 应该比较适合处理英文文本
  • 每一个单词的首字母大写 .title()
  • 全部换成小写字母 .lower()
  • 全部换成大写字母 .upper()

检测开头结尾的字符

  • 检测是否以某段字符串开头 .startswith("...") # 注意s
  • 检测是否以某段字符串结尾 .endswith("...") # 注意s

对齐方式

  • 左对齐, 并以空格填充至某个长度 .ljust(width)
  • 右对齐, 并以空格填充至某个长度 .rjust(width)
  • 居中对齐, 并以空格填充至某个长度 .center(width)

删除空白符

  • 删除字符串左边起的空白符 .lstrip()
  • 删除字符串右边起的空白符 .rstrip()

查找

  • 类似于find方法, 但从最右边开始找 .rfind("...", start, end)
  • 类似于index方法, 但从最右边开始找 .rindex("...", start, end)

分割

  • 把字符串根据分割依据str分割成, str之前, str, str之后三个部分 .partition(str)
  • 类似于partition, 但从最右边开始 .rpartition(str)
  • 按照行进行分割, 返回一个列表, 每个元素就是字符串的每一行 .splitlines()

判断内容的类型

  • 是否只含字母 .isalpha()
  • 是否只含数字 .isdigit()
  • 是否只含字母和数字 .isalnum()
  • 是否只含空格字符 .isspace()
posted @ 2020-10-15 18:17  sn0wp3ak  阅读(78)  评论(0编辑  收藏  举报