Skip to content

Python 字符串相关方法概览

Python 中处理文本主要用 str 类型。实例方法通过 "文本".方法名(...) 调用;另有少量与字符串强相关的内置函数(如 lenord)。字符串不可变:方法大多返回新字符串,不原地修改。

更细的 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(...) 时常配合生成字符串

boolintfloathashidtype 等适用于任意对象,不单针对字符串,需要时再查文档即可。

小结

  • 绝大多数「字符串操作」在 str 实例方法上;注意 join 写在分隔符上。
  • 需要某一方法的参数细节、边界情况,请查官方 str 页面。

参考