在 Python 中,字符串(str
)无处不在:用户名、日志、网络请求、配置文件……掌握 str
对象的方法,不仅能让你的代码更简洁、可读性更高,还能帮助你应对各种文本处理场景。今天,我们就来盘点最常用、最实用的 str
方法,教你一站式解决字符串的所有痛点!
1. 基础操作:创建与拼接
创建字面量
s1="Hello"
s2='World'
s3="""多行
字符串"""
拼接
# + 连接
msg=s1+", "+s2+"!"
# join 高效拼接
words= ["Python", "is", "awesome"]
sentence=" ".join(words)
吸引点:
join
比 +
拼接大字符串更省内存,千行日志处理必备!
2. 格式化妙招:让输出更优雅
f-strings(Python 3.6+)
name, age="Alice", 30
info=f"{name} 年龄:{age}"
str.format()
template="{name} 在学习 {lang}"
msg=template.format(name="Bob", lang="Python")
百分号风格
msg="%s 有 %d 只猫"% ("Charlie", 2)
小技巧:在格式化日期、数字时,f-string 支持格式规格化,如:{pi:.2f}
。
3. 查找与替换:精准操控子串
find
/ rfind
:返回首次/末次出现的索引
"hello".find("l") # 2
"hello".rfind("l") # 3
index
/ rindex
:找不到抛异常
replace
:全局或指定次数替换
text.replace("old", "new", 2)
吸引点:用 count(sub)
预先判断出现次数,再决定是否 replace
,避免不必要的拷贝。
4. 切片与分割:灵活截取
切片(slice)
s="abcdefg"
s[2:5] # "cde"
s[:3] # "abc"
s[::2] # "aceg"
s[::-1] # 字符串反转
split
/ rsplit
"a,b,c".split(",") # ['a','b','c']
"a b c d".split(maxsplit=2) # ['a','b','c d']
partition
/ rpartition
:保留分隔符
"key=value".partition("=") # ('key', '=', 'value')
实战场景:快速反转字符串、只拆前 N 次、保留分隔符,满足各种日志、CSV 解析需求。
5. 大小写 & 空白处理
大小写转换
s.lower(), s.upper(), s.title(), s.capitalize(), s.swapcase()
去除空白
s.strip(), s.lstrip(), s.rstrip()
检测空白/字母/数字
s.isalpha(), s.isdigit(), s.isspace(), s.isalnum()
小提示:链式调用即可——s.strip().lower()
,一个表达式搞定清洗和归一。
6. 填充与对齐:输出表格有眉有眼
ljust
/rjust
/center
"5".rjust(3, "0") # "005"
"name".center(10, "-") # "--name---"
格式化内建
f"{num:0>8d}" # 数字左补零,总宽 8
使用场景:生成对齐列表、日志列头,输出对齐数据一行不差。
7. 编码与解码:跨平台通信必需
注意:读写文件、网络收发,牢记编码一致!
8. 高级技巧:翻译、模板、正则
translate
+ str.maketrans
table=str.maketrans("aeiou", "12345")
"hello".translate(table) # h2ll4
Template
模板
from string import Template
t=Template("Hi, $name")
t.substitute(name="David")
正则增强
import re
re.sub(r"\d+", "#", "ID:1234")
从入门到进阶,本文汇总了 Python str
的 20+ 种常用技巧,涵盖创建、拼接、格式化、查找、切片、大小写、填充、编码、翻译、模板……学会这些,几乎能解决日常绝大多数字符串处理需求。快在评论区分享你的实战心得,或者还有哪些冷门法宝?我们一起交流,让 Python 文本处理更高效、更有趣!
关注我,每天学一点 Python,小步快跑,才是王道!
对Python,AI,自动化办公提效,副业发展等感兴趣的伙伴们,扫码添加逍遥,限免交流群
备注【成长交流】