Python 字符串相关方法概览
Python 中处理文本主要用 str 类型。实例方法通过 "文本".方法名(...) 调用;另有少量与字符串强相关的内置函数(如 len、ord)。字符串不可变:方法大多返回新字符串,不原地修改。
更细的 capitalize() 说明见 capitalize 方法。完整 API 以官方文档为准。
大小写与外观
| 方法 | 作用(概要) |
|---|---|
capitalize() | 首字符大写,其余小写 |
casefold() | 强大小写折叠,常用于不区分大小写的比较 |
lower() | 全小写 |
upper() | 全大写 |
swapcase() | 大小写互换 |
title() | 单词首字母大写(规则受 Unicode 等影响) |
字符类别判断(is…)
| 方法 | 作用(概要) |
|---|---|
isalnum() | 是否均为字母或数字 |
isalpha() | 是否均为字母 |
isdecimal() | 是否均为十进制数字字符 |
isdigit() | 是否均为数字(含部分 Unicode 数字) |
isnumeric() | 是否均为数字字符(含分数、汉字数字等,语义比 isdigit 更宽) |
islower() / isupper() | 是否均为小写 / 大写 |
isspace() | 是否均为空白字符 |
isidentifier() | 是否可作为合法标识符 |
isprintable() | 是否均可打印 |
istitle() | 是否符合 title() 式的大小写样式 |
查找与计数
| 方法 | 作用(概要) |
|---|---|
find(sub[, start[, end]]) | 子串首次出现下标,找不到返回 -1 |
index(sub[, start[, end]]) | 同 find,找不到抛 ValueError |
rfind / rindex | 从右侧找最后一次出现 |
count(sub[, start[, end]]) | 子串出现次数 |
startswith / endswith | 是否以前缀 / 后缀开头(可传元组表示多种可能) |
拆分与拼接
| 方法 | 作用(概要) |
|---|---|
split(sep=None, maxsplit=-1) | 按分隔符拆成列表 |
rsplit | 从右侧开始拆 |
splitlines(keepends=False) | 按行拆分 |
partition(sep) | 拆成 (前, sep, 后) 三元组,sep 未找到时后两段为空 |
rpartition(sep) | 从右侧找 sep 再拆分 |
join(iterable):在分隔字符串上调用,把可迭代对象里的字符串接起来:
python
",".join(["a", "b", "c"]) # 'a,b,c'清洗、替换与填充
| 方法 | 作用(概要) |
|---|---|
replace(old, new[, count]) | 替换子串 |
strip([chars]) | 去掉两端指定字符(默认空白) |
lstrip / rstrip | 只去左端 / 右端 |
ljust / rjust / center(width[, fillchar]) | 左对齐 / 右对齐 / 居中,不足宽度用填充符 |
zfill(width) | 左侧补 0(符号位处理见文档) |
expandtabs(tabsize=8) | 将制表符展开为空格 |
格式化
| 方法 | 作用(概要) |
|---|---|
format(*args, **kwargs) | 按占位符格式化 |
format_map(mapping) | 类似 format,参数为映射对象(如 dict) |
编码与字符映射
| 方法 | 作用(概要) |
|---|---|
encode(encoding='utf-8', errors='strict') | 得到 bytes |
str.maketrans(...) | 生成翻译表(静态方式调用居多) |
translate(table) | 按表做字符级替换 |
常与字符串一起用的内置函数
下列不是 str 的方法,但经常用于字符串:
| 内置函数 | 作用(概要) |
|---|---|
len(s) | 字符长度(Unicode 码位个数,视版本与字符串内容) |
ord(c) | 单个字符 → Unicode 码点 |
chr(n) | 码点 → 单字符字符串 |
str(x) | 把对象转成字符串 |
repr(x) | 通常带引号、便于调试的字符串形式 |
ascii(x) | 类似 repr,非 ASCII 用转义表示 |
enumerate(iterable) | 带下标迭代 |
map(func, iterable) | 返回迭代器(Python 3),需 ''.join(...) 时常配合生成字符串 |
像 bool、int、float、hash、id、type 等适用于任意对象,不单针对字符串,需要时再查文档即可。
小结
- 绝大多数「字符串操作」在
str实例方法上;注意join写在分隔符上。 - 需要某一方法的参数细节、边界情况,请查官方
str页面。