1. 基本切片操作
列表的切片语法为:
列表[起始索引:结束索引:步长]
起始索引:切片的开始位置(包含该索引)。
结束索引:切片的结束位置(不包含该索引)。
步长:每次取数的间隔,默认为 1。
示例:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 取索引 2 到 5(不包含 5)的元素
print(my_list[2:5]) # 输出: [2, 3, 4]
# 从索引 1 开始,取到末尾
print(my_list[1:]) # 输出: [1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从开头取到索引 5(不包含 5)
print(my_list[:5]) # 输出: [0, 1, 2, 3, 4]
2. 步长(Step)
步长用于控制取数的间隔。步长为正数时,从左向右取数;步长为负数时,从右向左取数。
示例:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 步长为 2,每隔一个元素取一个
print(my_list[::2]) # 输出: [0, 2, 4, 6, 8]
# 从索引 1 开始,步长为 3
print(my_list[1::3]) # 输出: [1, 4, 7]
3. 逆序取数
通过设置步长为负数,可以实现逆序取数。
示例:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 逆序整个列表
print(my_list[::-1]) # 输出: [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
# 从索引 5 开始,逆序取到索引 2(不包含 2)
print(my_list[5:2:-1]) # 输出: [5, 4, 3]
4. 综合示例
结合起始索引、结束索引和步长,可以实现更灵活的切片操作。
示例:
my_list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 从索引 2 开始,到索引 8(不包含 8),步长为 2
print(my_list[2:8:2]) # 输出: [2, 4, 6]
# 从索引 7 开始,逆序取到索引 3(不包含 3),步长为 1
print(my_list[7:3:-1]) # 输出: [7, 6, 5, 4]
5. 注意事项
如果起始索引或结束索引超出列表范围,Python 不会报错,而是自动截取到列表的边界。
步长为负数时,起始索引必须大于结束索引,否则会返回空列表。
示例:
my_list = [0, 1, 2, 3, 4, 5]
# 起始索引大于结束索引,步长为正数,返回空列表
print(my_list[5:2]) # 输出: []
# 起始索引小于结束索引,步长为负数,返回空列表
print(my_list[2:5:-1]) # 输出: []
总结
步长:通过 [::步长] 控制取数的间隔。
逆序取数:通过 [::-1] 实现列表的逆序。
灵活切片:结合起始索引、结束索引和步长,可以实现各种复杂的切片操作。