Python广告数据挖掘与分析实战
上QQ阅读APP看书,第一时间看更新

3.1.2 索引与切片

在Python中,索引与切片是我们常用的功能,可用于获取序列中我们所需要的元素。但不同的是,索引一般是指特定元素所在的位置,为了获取序列中某个位置的元素,Python中的索引默认都是从0开始的;而切片则是为了获取序列中的某个片段的元素,一般是根据索引来进行获取的。

例如要获取列表list1中的第一个元素,直接通过list1[0]即可获取。


In [40]: list1 = ['wellcom','to','the','sjwjyaisf1688',6,6,6]

In [41]: list1[0]
Out[41]: 'wellcom'

如果想通过切片操作获取列表list1中的第3~5个元素,可以尝试如下操作:


In [42]: list1[2:4]
Out[42]: ['the', 'sjwjyaisf1688']

可以看到,结果只输出了list1中的第3个和第4个元素,因为切片操作通常只包含第一个元素而不包含最后一个元素,也就是说list1[2:4]这个切片操作只能获取到索引为2和3的两个元素,即只能获取到list1列表中的第3个和第4个元素,而不能获取到第5个元素,这点是需要重点注意的。

另外,假如我们想获取list1中的最后一个元素,可以通过list1[-1]来实现:


In [43]: list1[-1]
Out[43]: 6

如果我们想要获取list1的最后3个元素,可以通过list1[-3:]来实现:


In [44]: list1[-3:]
Out[44]: [6, 6, 6]

从上文可以看到,索引从前往后是从0开始计算的,而从后往前则是从-1开始计算的,如果切片操作中不指明开始位置或结束位置,则在进行切片操作时默认获取字符串的最前或最后位置的字符子串。

以上是列表的切片操作的示例,下面我们来看一下元组的切片操作。


In [44]: tuple3 = (1,2,3,4)
In [45]: tuple3[0]
Out[45]: 1

In [46]: tuple3[1:2]
Out[46]: (2,)

In [47]: tuple3[-3:]
Out[47]: (2, 3, 4)

可以看到,元组的切片操作与列表类似,也就是说我们可以根据前面介绍的切片和索引规则获取任意我们想要的字符子串。

虽然前面讲过元组中的元素不可更改且不可赋值,但它仍然可以进行相应的切片操作。