欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python序列学习

程序员文章站 2022-03-25 18:08:08
...
       我的学习python练习的环境的是ubuntu 14.04操作系统,默认的是安装python2.7。所以一切的练习都是在python2.7上。下面我把学习序列的一些操作和想法分享给大家。
        python的序列像java中的数组,一般数组都是用于存放元素或对象。我们可以对python序列进行,通过索引查找元素,插入操作,乘法操作,遍历,还有对序列的元素的子集进行操作,又称分片。
       索引:序列中所有元素都是有有编号的,从左往右,从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……
       分片:分片操作其实就是依索引为基础,操作序列的子集合(一定范围内的元素),类似与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),正数时相反。