Menu
CoddyTech

列表切片(2)

本课属于 Coddy Python 学习旅程的“基础知识”单元。第 65 课,共 77 课。

切片还有另一个步长参数:lst[start:stop:step]。例如,看看这个列表:

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

获取索引 1 到 8 之间每隔一个的元素:

print(numbers[1:8:2])
# 输出:[1, 3, 5, 7]

从索引 2 开始,每隔两个元素获取一个:

print(numbers[2::3])
# 输出:[2, 5, 8]

切片也支持负索引。

从末尾开始计数:

print(numbers[-3:])
# 输出:[7, 8, 9]

这里,-3 表示“从末尾开始数第 3 个位置”

计数直到末尾:

print(numbers[:-2])    
# 输出:[0, 1, 2, 3, 4, 5, 6, 7]

这里,-2 表示“在末尾前 2 个位置停止”(不包含该位置)

使用负步长反转:

print(numbers[::-1])
# 输出:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
  • 第一个 : 前为空,表示“从开头开始”(步长为负数时,表示“从末尾开始”)
  • 两个 : 之间为空,表示“直到末尾”(步长为负数时,表示“直到开头”)
  • -1 表示“每次向后移动一步” 
challenge icon

挑战

简单

创建一个程序,接收一个列表作为输入(给定),并根据以下切片操作打印出三个新列表:

  • 从索引 1(第二个元素)开始,每隔两个元素取一个元素组成的列表
  • 按倒序排列从第 6 个元素到第 1 个元素的所有元素组成的列表
  • 从列表中间开始到末尾,每隔一个元素取一个元素组成的列表

亲手试试

lst = input().split(",")
# 在下方编写你的代码
quiz icon自我测试

这节课包含一个小测验。开始学习即可作答,并记录你的进度。

基础知识中的所有课

自己练习: Python 在线编译器