Py学习  »  Python

这篇文章,让你秒懂 Python str 的 20+ 种实用套路,做个字符串大师!

A逍遥之路 • 1 年前 • 555 次点击  

在 Python 中,字符串(str)无处不在:用户名、日志、网络请求、配置文件……掌握 str 对象的方法,不仅能让你的代码更简洁、可读性更高,还能帮助你应对各种文本处理场景。今天,我们就来盘点最常用、最实用的 str 方法,教你一站式解决字符串的所有痛点!

1. 基础操作:创建与拼接

  • 创建字面量

    s1="Hello"
    s2='World'
    s3="""多行
    字符串"""
  • 拼接

    # + 连接
    msg=s1+", "+s2+"!"
    # join 高效拼接
    words= ["Python""is""awesome"]
    sentence=" ".join(words)

吸引点 join 比 + 拼接大字符串更省内存,千行日志处理必备!


2. 格式化妙招:让输出更优雅

  1. f-strings(Python 3.6+)

    nameage="Alice"30
    info=f"{name} 年龄:{age}"
  2. str.format()

    template="{name} 在学习 {lang}"
    msg=template.format(name="Bob"lang="Python")
  3. 百分号风格

    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. 编码与解码:跨平台通信必需

  • encode / decode

    b=s.encode("utf-8")
    s2=b.decode("utf-8")
  • 处理错误

    b.decode("utf-8"errors="ignore")

注意:读写文件、网络收发,牢记编码一致!


8. 高级技巧:翻译、模板、正则

  1. translate + str.maketrans

    table=str.maketrans("aeiou""12345")
    "hello".translate(table)  # h2ll4
  2. Template 模板

    from string import Template
    t=Template("Hi, $name")
    t.substitute(name="David")
  3. 正则增强

    import re
    re.sub(r"\d+""#""ID:1234")

从入门到进阶,本文汇总了 Python str 的 20+ 种常用技巧,涵盖创建、拼接、格式化、查找、切片、大小写、填充、编码、翻译、模板……学会这些,几乎能解决日常绝大多数字符串处理需求。快在评论区分享你的实战心得,或者还有哪些冷门法宝?我们一起交流,让 Python 文本处理更高效、更有趣!

关注我,每天学一点 Python,小步快跑,才是王道!

转发、收藏、在看,是对作者最大的鼓励!👏
关注逍遥不迷路,Python知识日日补!






           对Python,AI,自动化办公提效,副业发展等感兴趣的伙伴们,扫码添加逍遥,限免交流群

备注【成长交流】

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/183253