裁剪列表#

在Python中,一个常见的任务是裁剪列表和元组的部分内容,例如访问列表中的特定部分。

让我们从一个数字列表开始

data = [34, 0, 65, 23, 51, 9, 50, 78, 34, 100]

我们可以确定data中有多少个元素:

len(data)
10

如前所示,我们可以通过传递索引来访问特定元素。元素索引的计数从0开始。

data[0]
34
data[1]
0

我们也可以传递负索引。这将从列表的末尾访问元素。最后一个元素的索引是-1。

data[-1]
100
data[-2]
34

在列表中选择范围#

我们还可以生成一个包含前三个元素的新列表。为此,我们传递一个[start:end]形式的范围。新列表的第一个元素的索引是start,最后一个元素将在end之前。

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[0:2]
[34, 0]
data[0:3]
[34, 0, 65]
data[1:2]
[0]

此外,如果我们想从开始选择列表中的所有条目或直到结束,我们不必指定startend

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]
data[:2]
[34, 0]
data[:3]
[34, 0, 65]
data[2:]
[65, 23, 51, 9, 50, 78, 34, 100]
data[3:]
[23, 51, 9, 50, 78, 34, 100]

这也适用于负索引

data[-2:]
[34, 100]

在列表中跳过条目#

: 也可以用来提供步长,使用语法 [start:end:step]

data
[34, 0, 65, 23, 51, 9, 50, 78, 34, 100]

例如,我们可以从第一个开始选择每隔一个元素:

data[0:10:2]
[34, 65, 51, 50, 34]
data[::2]
[34, 65, 51, 50, 34]

我们也可以从第二个元素(索引1)开始:

data[1::2]
[0, 23, 9, 78, 100]

元组#

上面介绍的所有概念也适用于元组

immutable_data = tuple(data)
immutable_data
(34, 0, 65, 23, 51, 9, 50, 78, 34, 100)
immutable_data[:5]
(34, 0, 65, 23, 51)

练习#

请使用类似上面所示命令的单个Python命令从data中选择三个数字23、9和78。