Python序列的切片操作与技巧

切片操作

对于具有序列结构的数据来说,切片操作的方法是:consequence[start_index: end_index: step]。

start_index:
表示是第一个元素对象,正索引位置默认为0;负索引位置默认为 -len(consequence)

end_index:
表示是最后一个元素对象,正索引位置默认为 len(consequence)-1;负索引位置默认为 -1。

step:
表示取值的步长,默认为1,步长值不能为0。

[注意]对于序列结构数据来说,索引和步长都具有正负两个值,分别表示左右两个方向取值。索引的正方向从左往右取值,起始位置为0;负方向从右往左取值,起始位置为-1。因此任意一个序列结构数据的索引范围为 -len(consequence) 到 len(consequence)-1 范围内的连续整数。

切片操作会将按照给定的索引和步长,截取序列中由连续的对象组成的片段,单个索引返回值可以视为只含有一个对象的连续片段。

切片的过程是从第一个想要的对象开始,到第一个不想要的对象结束。第一个想要的对象到第一个不想要的对象之间的连续对象就是你所有想要的对象。

因此在consequence[start_index: end_index]中,切片中包含了consequence[start_index],但不包括consequence[end_index]。

切片的操作类型:

con[start_index]:
返回索引值为start_index的对象。start_index为 -len(con)到len(con)-1之间任意整数。

con[start_index: end_index]:
返回索引值为start_index到end_index-1之间的连续对象。

con[start_index: end_index : step]:
返回索引值为start_index到end_index-1之间,并且索引值与start_index之差可以被step整除的连续对象。

con[start_index: ]:
缺省end_index,表示从start_index开始到序列中最后一个对象。

con[: end_index]:
缺省start_index,表示从序列中第一个对象到end_index-1之间的片段。

con[:]:
缺省start_index和end_index,表示从第一个对象到最后一个对象的完整片段。

con[::step]:
缺省start_index和end_index,表示对整个序列按照索引可以被step整除的规则取值。

在使用单索引对序列寻址取值时,你所输入的索引值必须是处于 -len(consequence) 到 len(consequence)-1 之间的值,否则会报错提示索引值超出范围。
Python中含有六种内建序列类:list, tuple, string, unicode, buffer, xrange。其中xrange比较特殊,它是一个生成器,其他几个类型具有的一些序列特性对它并不适合。
时间: 2024-08-27 21:10:15

Python序列的切片操作与技巧的相关文章

Python中的切片操作

Python中的切片操作功能十分强大,通常我们利用切片来进行提取信息,进行相关的操作,下面就是一些切片的列子,一起来看看吧,希望对大家学习python有所帮助. 列如我们从range函数1-100中取7的倍数,函数及结果如下所示: >>> for i in range(1,100)[6::7]: print i 7 14 21 28 35 42 49 56 63 70 77 84 91 98 取一个list或tuple的部分元素是非常常见的操作.比如,一个list如下: >>

python学习之“切片操作从入门到精通”

在python学习开发的过程中,我们总是不断的要对List(列表),Tuple(元组)有取值操作:假如我们有一个列表List1现在想取出1其中的前5个元素,改怎么操作呢? 1 >>> List1 = ['zhangxueyou','liuyifei','liudehua','huyidao','haodada','wumengda','zhouxingchi','chenglong','Jack','linzhilin'] 2 >>> List1 3 ['zhangxu

python中列表切片操作

1 a=['zhao','qian','sun','li','zhou',''] 2 3 #增删改查 4 #查 切片 [] 5 print(a[1:])#取到最后 6 print(a[1:-1])#取到倒数第二值 7 print(a[1:-1:1])#从左到右一个一个去取 8 print(a[1::2])#从左到右隔一个去取 9 print(a[3::-1]) 10 b=a[3::-1] 11 print(b)#['sanpang', 'xiaohu', 'jinxin', 'wuchao']

Python切片操作

1.切片 Python中序列包括string.list.tuple,序列可以使用切片操作,利用切片操作可以获得对应类型的变量的任意部分(子集) 比如 s="HelloWorld",我们可以通过切片操作s[0:5]获得"Hello". 序列的下标是从0开始的 从左到右,下标范围:[0,len(s)-1) 从右到左,下标范围:[-len(s),-1] 2.切片示例 切片的语法为:[start:end:step] 表示从下标start开始,以步长step跨越,以下标end

Python——序列

#!/usr/bin/python #coding:utf8 ''' Python——序列 字符串的操作 ''' s = 'abcdefg' print s print s[2] print s[-1] print s[0:1] print s[-3:] ''' 开始下标位 结束下表位 隔一个取一个 ''' print s[0::2] print s[-3:-1:2] ''' 开始下标位 结束下表位 -2倒的取 隔一个取一个 ''' print s[::-2] 打印结果: abcdefgcgae

Python array,list,dataframe索引切片操作 2016年07月19日——智浪文档

array,list,dataframe索引切片操作 2016年07月19日——智浪文档 list,一维,二维array,datafrme,loc.iloc.ix的简单探讨 Numpy数组的索引和切片介绍: 从最基础的list索引开始讲起,我们先上一段代码和结果: a = [0,1,2,3,4,5,6,7,8,9] a[:5:-1] #step < 0,所以start = 9 a[0:5:-1] #指定了start = 0 a[1::-1] #step < 0,所以stop = 0 输出: [

python序列类型及一些操作

序列分类 1.按存放的数据类型分类: 容器类型(能存放不同类型的数据):list.tuple.coolections.deque 扁平序列(只能存放一种类型的数据):str.bytes.bytearray.memoryview.array.array 容器类型存放它们所包含的任意类型的对象的引用,而扁平类型存放的是值而不是引用.(扁平序列是一段连续的存储空间) 2.按能否被修改分类: 可变序列:list.bytearray.array.array.coolections.deque.memory

Python中numpy 数组的切片操作

Python中numpy 数组的切片操作简介取元素 X[n0,n1]切片 X[s0:e0,s1:e1]切片特殊情况 X[:e0,s1:]示例代码输出结果简介X[n0,n1]是通过 numpy 库引用二维数组或矩阵中的某一段数据集的一种写法.类似的,X[n0,n1,n2]表示取三维数组,取N维数组则有N个参数,N-1个逗号分隔.以二维数组为例: import numpy as npX = np.array([[0,1,2,3],[10,11,12,13],[20,21,22,23],[30,31,

关于javascript里面仿python切片操作数组的使用方法

其实在使用了好一段时间的 python之后,我觉得最让我念念不忘的并不是python每次在写函数或者循环的时候可以少用{}括号这样的东西(ps:其实也是了..感觉很清爽,而且又开始写js的时候老是想用xxx in range(): ...跪.:( ) 而是我觉得字符串操作的切片真实让我感到前所未有的爽. 试想一下,我们平时操作最多的数组和字符串在切片的帮助下,不知道可以省去多少时间和麻烦.而且有了切片甚至不用去记很多可以被切片代替的api. 今天我在啃<学习javascript数据结构与算法>