社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

A逍遥之路 • 2 天前 • 21 次点击  

在 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
 
21 次点击