python字符串常用方法汇总
python的字符串是不可变序列类型,所有对字符串的操作都会返回一个新的字符串对象,不会修改原字符串。下面按功能分类介绍常用的字符串方法。

基础查询与判断方法
这类方法主要用于判断字符串的特征或者查找子串的位置。
- startswith(prefix):判断字符串是否以指定前缀开头,返回布尔值
- endswith(suffix):判断字符串是否以指定后缀结尾,返回布尔值
- find(sub):查找子串sub第一次出现的位置,不存在则返回-1
- index(sub):和find功能类似,子串不存在时会抛出ValueError异常
- isdigit():判断字符串是否全部由数字组成
- isalpha():判断字符串是否全部由字母组成
- isalnum():判断字符串是否全部由字母或数字组成
下面是这类方法的使用示例:
text = "hello123"
# 判断前缀
print(text.startswith("hello")) # 输出 True
# 判断后缀
print(text.endswith("123")) # 输出 True
# 查找子串位置
print(text.find("lo")) # 输出 3
# 判断是否为数字
print("123".isdigit()) # 输出 True
print("12a".isdigit()) # 输出 False
字符串分割与拼接方法
处理文本时经常需要把字符串拆分成列表,或者把列表拼接成字符串。
- split(sep=None, maxsplit=-1):按照指定分隔符sep拆分字符串,maxsplit指定最大拆分次数,默认拆分所有
- rsplit(sep=None, maxsplit=-1):从右侧开始拆分字符串,参数含义和split一致
- join(iterable):将可迭代对象中的字符串元素拼接成一个字符串,调用该方法的字符串会作为连接符
- partition(sep):按照分隔符sep将字符串拆分为三元组(分隔符前内容, 分隔符, 分隔符后内容),找不到分隔符则返回原字符串和两个空字符串
使用示例:
# 分割字符串
sentence = "apple,banana,orange,grape"
fruit_list = sentence.split(",")
print(fruit_list) # 输出 ['apple', 'banana', 'orange', 'grape']
# 限制拆分次数
print(sentence.split(",", 2)) # 输出 ['apple', 'banana', 'orange,grape']
# 拼接字符串
new_sentence = "-".join(fruit_list)
print(new_sentence) # 输出 apple-banana-orange-grape
# partition使用
print("user:admin:001".partition(":")) # 输出 ('user', ':', 'admin:001')
字符串修改与清理方法
这类方法用于对字符串的内容进行修改或者清理多余字符。
- strip(chars=None):移除字符串首尾的指定字符,默认移除空白字符(空格、换行、制表符等)
- lstrip(chars=None):只移除字符串左侧的指定字符
- rstrip(chars=None):只移除字符串右侧的指定字符
- replace(old, new, count=-1):将字符串中的old子串替换为new子串,count指定替换次数,默认替换所有
- upper():将字符串所有字母转为大写
- lower():将字符串所有字母转为小写
- capitalize():将字符串第一个字母转为大写,其余转为小写
- title():将字符串中每个单词的首字母转为大写,其余转为小写
使用示例:
text = " Hello World n"
# 清理首尾空白
print(text.strip()) # 输出 Hello World
# 替换内容
print(text.strip().replace("World", "Python")) # 输出 Hello Python
# 大小写转换
print("hello".upper()) # 输出 HELLO
print("HELLO".lower()) # 输出 hello
print("hello world".title()) # 输出 Hello World
其他实用方法
- count(sub):统计子串sub在字符串中出现的次数
- zfill(width):返回长度为width的字符串,原字符串右对齐,左侧用0填充
- center(width, fillchar=' '):将原字符串居中,两侧用fillchar填充到指定宽度
- format(*args, **kwargs):字符串格式化方法,通过占位符替换内容
使用示例:
# 统计子串次数
print("hello hello".count("hello")) # 输出 2
# 补零操作
print("12".zfill(5)) # 输出 00012
# 居中填充
print("test".center(10, "*")) # 输出 ***test***
# 格式化字符串
name = "张三"
age = 25
print("姓名:{},年龄:{}".format(name, age)) # 输出 姓名:张三,年龄:25
注意事项
因为python字符串是不可变对象,所以所有字符串方法都不会修改原字符串,而是返回一个新的字符串。如果需要重复使用修改后的结果,记得用变量接收返回值。另外部分方法比如index()在子串不存在时会抛出异常,实际使用时如果不确定子串是否存在,优先使用find()方法更稳妥。