python序列学习

我的学习python练习的环境的是ubuntu 14.04操作系统,默认的是安装python2.7。所以一切的练习都是在python2.7上。下面我把学习序列的一些操作和想法分享给大家。
python的序列像java中的数组,一般数组都是用于存放元素或对象。我们可以对python序列进行,通过索引查找元素,插入操作,乘法操作,遍历,还有对序列的元素的子集进行操作,又称分片。
[b] 索引[/b]:序列中所有元素都是有有编号的,从左往右,从0开始依次递增,这编号就称为索引。
测试代码:

>>> arr=[1,2,3,4,5,6,7,8,9]
>>> arr
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[0]
1
>>> arr[-1]
9

习惯了java代码,习惯上数组的变量都是用arr开头,我们还是称为序列吧。我们可以看到arr[0]的元素是1,其中0就是索引,1就是序列中的元素。python也支持传负数,负数的的规律从右往左依次是-1,-2……
[b]分片[/b]:分片操作其实就是依索引为基础,操作序列的子集合(一定范围内的元素),类似与java中的截取操作。
测试代码:

>>> arr[0:3]
[1, 2, 3]
>>> arr[7:12]
[8, 9]
>>> arr[5:len(arr)]
[6, 7, 8, 9]
>>> arr[-3:-1]
[7, 8]
>>> arr[-3:0]
[]
>>> arr[-3:-9]
[]

从以上例子可以看出,python的分片操作是以“[开始索引:结束索引]”来获取子集合,其中包含开始索引元素,不包含结束索引元素,第二个例子,索引12在arr中没有存在元素,所以输出到最后一个元素,没有报异常。三个例子其中len是获取序列的长度。一般java中经常用到,防止数组索引过界。由第二个例子可以看出python不用担心,索引可以为负数,表示从右开始-1,-2……,从第四个到第六个例子可以看出。可以用负数进行分片操作。第五个例子和第六个例子说明,如果使用负数,两个都要是负数,且冒号右边大于左边。
分片还有以下操作:
取最后三个元素:

>>> arr[-3:]
[7, 8, 9]

取所有元素:

>>> arr[:]
[1, 2, 3, 4, 5, 6, 7, 8, 9]

分片中的步长:也就是分片中除了开始索引和结束索引,还可以添加一个参数,称为步长,就是隔几个取值,难理解就看例子。

>>> arr[0:9:1]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> arr[0:9:2]
[1, 3, 5, 7, 9]
>>> arr[::3]
[1, 4, 7]
>>> arr[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1]
>>> arr[3:5:-1]
[]
>>> arr[5:3:-1]
[6, 5]
>>> arr[:3:-1]
[9, 8, 7, 6, 5]
>>> arr[3::-1]
[4, 3, 2, 1]

从以上例子,可以得出结论:步长正数时,若是索引全部指定,从小到大,第一个值,是索引指定元素获得子集合中第一个元素,然后按照步长取值。步长负数时:开始索引小于结束索引,按照步长取值。只有一个值时,在开始索引位置时,第二值默认就是0,在结束索引位置时,开始索引默认的值是len(arr),正数时相反。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值