跳到主要内容

高级特性:切片(Slicing)

🧩 为什么需要切片?

当我们处理序列类型(字符串、列表、元组)时,常常只想获取其中的一部分,例如:

  • 从字符串中取出前三个字符
  • 从列表中取出奇数位的元素
  • 截取元组的后半部分

这时候,如果用循环写代码既繁琐又低效,Python 提供了一个强大而优雅的工具 —— 切片


🔣 切片的基本语法

序列[开始索引 : 结束索引 : 步长]

注意:

  • 含“开始”不含“结束”!
  • 步长默认为 1;可以为负数(表示倒序)

📘 示例一:字符串切片

文本 = "Hello, Python!"

打印(文本[0:5]) # 输出:Hello
打印(文本[7:]) # 输出:Python!
打印(文本[:5]) # 输出:Hello
打印(文本[-7:-1]) # 输出:Python

📘 示例二:列表切片

列表 = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

打印(列表[2:6]) # 输出:[2, 3, 4, 5]
打印(列表[:4]) # 输出:[0, 1, 2, 3]
打印(列表[::2]) # 输出:[0, 2, 4, 6, 8]
打印(列表[::-1]) # 输出:[9, 8, 7, ..., 0]

📘 示例三:元组切片

元组 = ("周一", "周二", "周三", "周四", "周五")

打印(元组[1:4]) # 输出:("周二", "周三", "周四")
打印(元组[-3:]) # 输出:("周三", "周四", "周五")

💡 小技巧与建议

操作示例说明
从头开始a[:n]从索引 0 开始取到 n-1
到末尾结束a[n:]从索引 n 一直到末尾
间隔取值a[::2]每隔一个取一次
倒序切片a[::-1]从后向前倒序遍历

✅ 总结

特性适用类型用途
切片 a[start:end:step]字符串、列表、元组快速提取子序列、反转、步进遍历等
步长可以为负所有序列支持倒序