31个必备的Python字符串方法详解
本文系统梳理Python中31个核心字符串处理方法,涵盖切片提取、空白符清理、前后缀截取、文本替换、分隔与合并、大小写转换、字符类型校验、子串查找定位及格式对齐等实用场景。通过代码示例与运行结果对照,帮助开发者快速掌握高效文本处理技巧。
文本切片与空白符清理
Slicing(切片)
通过索引范围截取字符串子集,语法为 字符串[start:end:step]。支持正负索引,省略边界时默认取首尾。适用于快速提取固定位置或按规律分布的文本片段。
s = ' hello '
s = s[:]
print(s)
s = s[3:8]
print(s)
strip() / lstrip() / rstrip()
移除字符串头尾、左侧或右侧指定的字符序列。默认仅去除空格与换行符。传入参数时,会从对应端逐字符剥离,直到遇到不在参数字符集中的字符为止,而非精确匹配完整序列。
' hello '.strip() # 'hello'
'###hello###'.strip('#') # 'hello'
'www.baidu.com'.strip('cmow.') # 'baidu'
removeprefix() / removesuffix()
Python 3.9 新增的确定性截取方法,分别用于精确移除开头或结尾的指定子串。不会像 strip() 那样展开字符集进行对称剥离,适合日志头尾清理或文件扩展名处理。
'Arthur: three!'.removeprefix('Arthur: ') # 'three!'
'HelloPython'.removesuffix('Python') # 'Hello'
文本替换与拼接
replace()
将字符串中匹配的子串替换为目标文本,可选限定替换次数。适合简单直接的文本映射或过滤。
'string methods in python'.replace(' ', '-')
# 'string-methods-in-python'
'abc abc abc'.replace('abc', 'xyz', 1)
# 'xyz abc abc'
re.sub()(正则替换)
基于 import re 模块实现模式匹配替换。当涉及连续空白符、可变长度结构或多条件清洗时,性能与灵活性优于普通 replace()。
import re
re.sub(r"\s+", "-", "string methods in python")
# 'string-methods-in-python'
join()
以调用者为连接符,将可迭代对象中的元素合并为新字符串。是列表转字符串的标准做法,比循环拼接更高效。
'-'.join(['a', 'b', 'c']) # 'a-b-c'
文本分割与定位
split() / rsplit()
按分隔符切分字符串并返回列表。split() 从左向右扫描,rsplit() 从右向左。可通过 maxsplit 限制切分次数,保留后续内容的完整性。
'path/to/file.py'.split('/', maxsplit=1)
# ['path', 'to/file.py']
'user@email.com'.rsplit('@', 1)
# ['user', 'email.com']
find() / rfind()
返回子串首次(find)或最后一次(rfind)出现的索引,未找到返回 -1。支持指定搜索区间 (start, end),常用于动态锚点定位与上下文提取。
'Machine Learning'.find('a', 2)
# 10(第二次出现的 'a' 的位置)
partition() / rpartition()
按目标子串首次出现位置,将字符串拆分为三元组 (前置部分, 分隔符, 后置部分)。即使分隔符不存在也会返回 (原字符串, '', ''),避免索引越界风险。
'Python is awesome!'.partition('is')
# ('Python ', 'is', ' awesome!')
大小写转换与字符校验
upper() / lower() / capitalize() / swapcase()
统一转为大写或小写;capitalize() 仅将首字母大写其余小写;swapcase() 翻转现有大小写状态。常用于协议标准化、表单输入规范与国际化适配。
islower() / isupper()
检查字符串是否全部为大写或小写字母。非字母字符不影响判定,空字符串返回 False。
isalpha() / isnumeric() / isalnum()
校验字符构成:isalpha 仅限字母,isnumeric 包含数字与中文 numeral,isalnum 允许字母加数字混合。适用于身份证脱敏、密码复杂度检测与数据库字段清洗。
'python123'.isalnum() # True
'100%'.isnumeric() # False(含百分号)
'½'.isnumeric() # True(兼容分数形式)
统计、对齐与格式化
count() / startswith() / endswith()
count() 统计子串出现频次(重叠部分不计算)。startswith() 与 endswith() 支持传入元组批量匹配,适合多后缀识别或路由前缀过滤。
'https://api.example.com'.startswith(('http:', 'https:'))
# True
center() / ljust() / rjust()
固定宽度排版工具。居中或左/右对齐后,使用指定填充字符补齐至目标长度。常用于日志表头对齐、控制台输出美化或定长报文构造。
'Log'.center(10, '=') # '===Log===='
'ID'.rjust(6, '0') # '000000ID'
zfill()
右侧补零至指定宽度,智能保留正负号。适用于生成连续编号、批次码或哈希前缀展示。
'42'.zfill(5) # '00042'
'-7'.zfill(5) # '-0007'
f-Strings
Python 3.6 引入的原生字符串插值语法。支持嵌入表达式、精度控制与对齐标记,解析速度显著快于 % 格式化与 .format()。推荐作为现代代码的首选拼接方案。
num = 8
lang = 'Python'
f'{lang} ranks #{num}'
# 'Python ranks #8'
完整代码参考与注意事项
正则操作需预先导入 import re;removeprefix()/removesuffix() 依赖 Python ≥ 3.9 运行时;f-string 虽性能优异但嵌套过深会降低可读性。实际工程建议优先使用内置方法处理确定性模式,复杂清洗流程可结合 re 模块构建管道。
以上就是Python字符串常用方法的详细内容,更多关于Python数据处理与进阶技巧的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









