字符串常用方法
本文最后更新于45 天前,在知识的增长过程中难免会有错误的理解,如有您发现有错误或者有不同的见解请发送邮件到thelistenerofrain@163.com或者留言~

Python 的字符串(str)是不可变序列类型,提供了大量强大而实用的内置方法。以下是 最常用、最核心的字符串方法分类总结,适合日常开发、算法题和数据处理使用。


🔤 一、大小写转换

方法作用示例
s.upper()转大写"hello".upper() → "HELLO"
s.lower()转小写"HELLO".lower() → "hello"
s.capitalize()首字母大写,其余小写"hello WORLD".capitalize() → "Hello world"
s.title()每个单词首字母大写"hello world".title() → "Hello World"
s.swapcase()大小写互换"HeLLo".swapcase() → "hEllO"

✅ 常用于:输入标准化、忽略大小写比较。


🔍 二、查找与判断

查找位置

方法说明异常
s.find(sub)返回子串首次出现的索引,未找到返回 -1不报错
s.rfind(sub)从右边开始找不报错
s.index(sub)同 find,但未找到会 抛出 ValueError可能报错
Python编辑"hello".find("l")      # 2
"hello".rfind("l")     # 3
"hello".index("x")     # ValueError!

判断开头/结尾

方法作用
s.startswith(prefix)是否以某字符串开头
s.endswith(suffix)是否以某字符串结尾
Python编辑"file.txt".endswith(".txt")  # True
"url".startswith("http")     # False

内容判断(返回 True/False

方法作用
s.isalpha()是否全为字母(不含空格、数字)
s.isdigit()是否全为数字字符(如 '123'
s.isnumeric()更广义的“数字”(含中文数字、罗马数字等)
s.isalnum()是否字母或数字(无空格、符号)
s.isspace()是否全为空白字符(空格、\t\n 等)
s.islower()是否全为小写(且至少有一个字母)
s.isupper()是否全为大写
Python编辑"abc".isalpha()     # True
"123".isdigit()     # True
"abc123".isalnum()  # True
"   ".isspace()     # True

✂️ 三、修改与替换

方法作用示例
s.replace(old, new[, count])替换子串"aabb".replace("a", "A") → "AAbb"
s.strip([chars])去除首尾指定字符(默认空白)" hello ".strip() → "hello"
s.lstrip([chars])去除左边空白/字符"!!hello!!".lstrip("!") → "hello!!"
s.rstrip([chars])去除右边空白/字符" hello ".rstrip() → " hello"

⚠️ strip 不是删除中间的字符!


🧩 四、分割与拼接

分割(返回列表)

方法作用
s.split(sep=None, maxsplit=-1)按分隔符分割(默认按任意空白分割)
s.rsplit(sep, maxsplit)从右边开始分割
s.splitlines(keepends=False)按行分割(处理 \n\r\n 等)
Python编辑"a,b,c".split(",")        # ['a', 'b', 'c']
"  a  b  ".split()        # ['a', 'b'](自动去空格)
"line1\nline2".splitlines()  # ['line1', 'line2']

拼接(用字符串连接列表)

方法作用
sep.join(iterable)用 sep 连接可迭代对象中的字符串
Python编辑"-".join(["a", "b", "c"])   # "a-b-c"
"".join(['h','e','l','l','o'])  # "hello"

这是拼接字符串最高效的方式!


🔢 五、格式化与对齐

方法作用示例
s.center(width[, fillchar])居中对齐"hi".center(6, '-') → "-hi--"
s.ljust(width[, fillchar])左对齐"hi".ljust(5, '*') → "hi***"
s.rjust(width[, fillchar])右对齐"hi".rjust(5) → " hi"
s.zfill(width)用 0 填充到指定宽度(常用于数字)"42".zfill(5) → "00042"

🔢 六、编码与特殊转换

方法作用
s.encode(encoding='utf-8')字符串 → 字节(bytes
b.decode(encoding='utf-8')字节 → 字符串(注意:这是 bytes 的方法)
ord(c)字符 → Unicode 码点(单字符)
chr(i)Unicode 码点 → 字符

⚠️ encode/decode 用于处理文件、网络传输等场景。


📌 七、其他实用方法

方法作用示例
s.count(sub)统计子串出现次数"banana".count("an") → 2
s.expandtabs(tabsize=8)将 \t 转为空格"a\tb".expandtabs(4) → "a b"
s.partition(sep)分成 (前, 分隔符, 后) 三元组"a=b".partition("=") → ('a', '=', 'b')
s.rpartition(sep)从右边分割"a=b=c".rpartition("=") → ('a=b', '=', 'c')

✅ 最佳实践建议

  1. 拼接字符串用 join(),不要用 + 循环(效率低)。
  2. 清理输入用 strip() + lower()
  3. 分割用 split(),默认按空白分割很智能
  4. 判断内容用 isdigit() / isalpha() 等,比正则简单
  5. 字符串不可变!所有方法都返回新字符串,记得赋值

🧠 一句话记忆口诀:

查(find/index)、判(isxxx)、改(replace/strip)、分(split)、连(join)、转(upper/lower)、对(ljust/rjust)

感谢您的阅读,如有错误,欢迎留言
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇