Python中有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]
- 切片截取操作不会影响原字符串变量, 而是生成一个新的字符串变量
字符串类型的常用方法
查找
- str.find("要查的部分", start, end) # find方法时字符串特有的查找方法
- 默认start=0, end=len(str)
- 找到返回 "要查的部分" 开始位置的下标
- 找不到返回 -1
- str.index("要查的部分", start, end)
- 默认start=0, end=len(str)
- 找到返回 "要查的部分" 开始位置的下标
- 找不到则会直接抛出异常 ValueError
统计出现次数
- str.count("要统计的部分", start, end)
- 默认start=0, end=len(str)
- 返回数字型结果
替换
- str.replace(str1, str2, count)
- 把str1替换成str2, 置于替换几次就看count了
- 默认 count=str.count(str1), 也就是全部替换
分隔
- str.split(str="分隔依据", maxsplit)
- maxsplit存在, 那么仅仅把字符串分成 maxsplit+1 个部分
- 分隔依据可以不写, 默认是按照空白字符(''' '' ')来分隔
- 如果存在分隔依据, 那么按照分隔依据去分隔, 但是结果中会把分隔依据剔除掉
- 得到的结果默认是list类型的一个列表 <class 'list'>
插空加入
- 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()