python 列表的步长和逆序取数用法

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] 实现列表的逆序。

灵活切片:结合起始索引、结束索引和步长,可以实现各种复杂的切片操作。

你可能感兴趣的:(python)