字符串的核心特性
- 不可变性:与元组一致,无法直接修改元素,需通过分片拼接生成新字符串
- 序列共性:支持索引、分片、比较、逻辑、成员关系操作符(与列表/元组通用)
- 无单独字符类型:单个字符是长度为1的字符串
字符串的索引与分片
- 索引访问:str[index] → 例:"abc"[1] → "b"
- 分片操作:str[start:end],规则同列表/元组
- 例:s = "I love fishc.com" → s[:6] → "I love"
- 间接修改:通过分片拼接生成新字符串 → s = s[:6] + " python" + s[6:]
字符串常用方法分类
- 大小写转换
- capitalize():首字符大写,其余小写
- casefold() / lower():全部转为小写(casefold支持更多语言)
- upper():全部转为大写
- swapcase():大小写翻转
- title():每个单词首字母大写,其余小写
- 格式对齐
- center(width):居中对齐,空格填充至width长度
- ljust(width):左对齐,空格填充
- rjust(width):右对齐,空格填充
- zfill(width):右对齐,左侧补0至width长度
- 查找与计数
- count(sub[,start[,end]]):统计sub出现次数,可指定范围
- find(sub[,start[,end]]):查找sub首次出现的索引,无则返回-1
- rfind(sub[,start[,end]]):从右往左查找,无则返回-1
- index(sub[,start[,end]]):与find类似,无则抛出异常
- rindex(sub[,start[,end]]):从右往左查找,无则抛出异常
- 判断检查
- startswith(prefix[,start[,end]]):是否以prefix开头
- endswith(suffix[,start[,end]]):是否以suffix结尾
- isalnum():是否全为字母/数字且至少1个字符
- isalpha():是否全为字母且至少1个字符
- isdigit():是否全为数字字符
- islower():是否全为小写字母
- isupper():是否全为大写字母
- isspace():是否全为空白字符
- istitle():是否符合标题格式(单词首字母大写)
- 分割与拼接
- split([sep[,maxsplit]]):按sep分割字符串,返回列表,默认分隔符为空格
- splitlines([keepends]):按换行符(\n)分割,keepends=True保留换行符
- join(iterable):用字符串作为分隔符,拼接可迭代对象的元素
- 修剪与替换
- strip([chars]):移除字符串首尾的chars(默认空格)
- lstrip([chars]):移除左侧的chars
- rstrip([chars]):移除右侧的chars
- replace(old,new[,count]):将old替换为new,count指定替换次数
- translate(table):按转换表替换字符,需配合str.maketrans()生成转换表
- 其他特殊方法
- expandtabs([tabsize]):将\t转换为空格,默认tabsize=8
- partition(sub):按sub分割为(head,sub,tail)元组,从左找首次出现
- rpartition(sub):从右找首次出现的sub进行分割
字符串转换表生成
- str.maketrans(old, new):生成字符替换的映射表
- 例:table = str.maketrans("s", "b") → "sssaaasss".translate(table) → "bbb aaabbb"