切片
2024年12月2日大约 1 分钟
Python 中的列表截取(切片)是一个非常强大且灵活的操作。以下是列表截取的详细介绍:
基本语法:list[start:end:step]
- 基本截取
# 原始列表
fruits = ['apple', 'banana', 'cherry', 'date', 'elderberry']
# 从索引0到2(不包含2)的截取
print(fruits[0:2]) # 输出: ['apple', 'banana']
# 省略开始索引,默认从0开始
print(fruits[:3]) # 输出: ['apple', 'banana', 'cherry']
# 省略结束索引,默认到列表末尾
print(fruits[2:]) # 输出: ['cherry', 'date', 'elderberry']- 负索引截取
# 负索引从列表末尾开始计数
print(fruits[-3:]) # 输出: ['cherry', 'date', 'elderberry']
print(fruits[:-2]) # 输出: ['apple', 'banana', 'cherry']- 步长截取
# 每隔一个元素截取
print(fruits[::2]) # 输出: ['apple', 'cherry', 'elderberry']
# 反向截取
print(fruits[::-1]) # 输出: ['elderberry', 'date', 'cherry', 'banana', 'apple']- 完整示例
numbers = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从索引2到索引7,步长为2
print(numbers[2:7:2]) # 输出: [2, 4, 6]
# 反向截取,从末尾到开头,步长为-1
print(numbers[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]- 复制列表的技巧
# 创建列表的完整副本
original = [1, 2, 3, 4, 5]
copy = original[:]注意事项:
- 截取不会改变原始列表
- 索引从0开始
- 结束索引是"不包含"的
- 步长可以是正数或负数
- 超出索引范围不会报错,会返回空列表或部分结果
列表截取是 Python 中非常灵活的操作,可以方便地提取、复制或反转列表。