裁剪列表#
在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]
此外,如果我们想从开始选择列表中的所有条目或直到结束,我们不必指定start或end。
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。