Python 中如何截取字符串的子串?

Python 截取子串用切片语法 s[start:end],支持负索引和步长。本文介绍切片的各种用法、常见示例及注意事项。

最佳实践
Python 中如何截取字符串的子串?封面

用切片语法 s[start:end]start 是起始下标(含),end 是结束下标(不含)。省略 start 从头开始,省略 end 到结尾。

基本用法

s = "Hello, world!"

print(s[7:12])   # "world"
print(s[:5])     # "Hello"(从头到第 5 个)
print(s[7:])     # "world!"(从第 7 个到尾)
print(s[-6:-1])  # "world"(负索引:倒数第 6 到倒数第 2)

步长参数

s = "abcdefg"
print(s[::2])    # "aceg"(每隔一个取一个)
print(s[::-1])   # "gfedcba"(倒序)

切片的友好特性

  • 越界不报错s[0:100] 不会抛异常,自动截到末尾;
  • 切片返回新字符串,原字符串不变(字符串不可变)。

常见需求速查

需求 写法
前 N 个字符 s[:N]
后 N 个字符 s[-N:]
去掉首尾各 1 个 s[1:-1]
字符串反转 s[::-1]

常见问题(FAQ)

Q:按分隔符截取怎么办?
A:用 split() 分割后取值,如 s.split(',')[0];或用 find() 定位再切片:s[:s.find(',')]

Q:下标从 0 还是 1 开始?
A:从 0 开始。s[0] 是第一个字符。

Q:切片和 split 哪个快?
A:简单截取切片更快;需要按分隔符拆多段时 split 更合适。日常代码性能差异可忽略,优先选可读性好的写法。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台