序列和索引
既然谈到分片,就脱离不了序列和索引这些概念。什么是序列呢? 在Python中,最基本的数据结构是序列(sequence)。序列中的每个元素被分配一个序号——即元素的位置,也称为索引。第一个索引是 0,第二个则是 1,以此类推。序列中的最后一个元素标记为 -1,倒数第二个元素为 -2,一次类推。 下面是一个序列和相关索引位置的操作
===> greeting = "hello"
===>greeting[0]
===> g
===> greeting[-1]
===>o
分片
在了解序列和索引的概念之后,我们来看看分片是什么。分片是python语言自带的一种操作,使用两个分割的索引 获取一定范围的元素。
>>> numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
>>> numbers[3:6]
[4, 5, 6]
>>> numbers[0:1]
[1]
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
>>> numbers[3, 6, 3]
[4]
上述例子使用分片获取numbers 的第四位到第六位以及第1位的内容,在数学的区间概念中我们使用[3,6) 这样的方式来体现。
分片不仅仅有这样的使用方式,他还有负数方式也能使用,即取第-1个数字,这是python的索引机制所决定的。
numbers[-3:]
[8, 9, 10]
分片操作还存在步长这种设定:即每一次获取数据,都是间隔获取的
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
>>> numbers[3, 6, 3]
[4]
步长不能为0,但是可以为负数,这样会从左到右边获取数据
>>> numbers[8:3:-1]
[9, 8, 7, 6, 5]
>>> numbers[0:10:-2]
[]
>>> numbers[10:0:-2]
[10, 8, 6, 4, 2]
python语言十分之强大,在于他将一些其他函数通过函数实现的常用语法,融入到日常使用的语法之中,同时屏蔽其中复杂的部分,使得函数简单易用。