2016.07.09-10切片操作

切片操作

对有序数列使用下标操作进行区域切割。
最常见的的切片操作,以list为例(其他的有序数列,例如tuple和str的切片操作都跟list相同):
lst[start:end:step]
start:起始索引,end:结束索引,step步长
切片操作的取值区域,包含起始索引的元素,不包含结束索引的元素
正数索引,从0开始,从左往右计数
负数索引,从-1开始,从右往左计数
实例:如果step(步长)为默认值(1)或者其他正整数时,切片顺序是从左往右,start(起始索引)必须在end(结束索引)前面,否则会得到一个空列表。
>>> lst
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[0:8]
[0, 1, 2, 3, 4, 5, 6, 7]

>>> lst[0:-2]
[0, 1, 2, 3, 4, 5, 6, 7]

>>> lst[-8:6]
[2, 3, 4, 5]

>>> lst[-2:3]
[]

>>> lst[7:2]
[]

>>> lst[-2:-5]
[]

实例:如果step(步长)为负数时,切片顺序是从右往左,start(起始索引)必须在end(结束索引)后面,否则会得到一个空列表。
返回的结果相对于原列表是逆序的
>>> lst
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[7:2:-1]
[7, 6, 5, 4, 3]

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

>>> lst[-1:-5:-1]
[9, 8, 7, 6]

>>> lst[-1:-7:2]
[]
>>>

实例:step为默认(1)或-1时,切片计数为正常的顺序取值,当大于1,或者小于-1时,则根据step跳跃取值,步长是2或-2时是两位元素中取第一位,第二位丢弃,以此类推。
>>> lst[::2]
[0, 2, 4, 6, 8]

>>> lst[::3]
[0, 3, 6, 9]

>>> lst[-1::-2]
[9, 7, 5, 3, 1]

>>> lst[-1::-3]
[9, 6, 3, 0]

实例:当start或end超出lst的索引范围的情况,start < 索引范围的第一位,end >索引范围的最后一位,start取值从索引第一位开始,end取值为len(lst)
>>> lst[-100:5]
[0, 1, 2, 3, 4]

>>> lst[2:100]
[2, 3, 4, 5, 6, 7, 8, 9]

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

实例:start为0可以省略,end为list的长度时可以省略,等效于lst.copy()方法
>>> lst
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[:]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> lst[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>>

时间: 2024-10-07 20:46:45

2016.07.09-10切片操作的相关文章

07 09&amp;10

0709: 排名还是不高,毕竟没切出来题. 第一题dalao: 要求你做一个三维数点,只回答最终有多少个点对的状态是完全小于(可比?)的.(n<=2000000) 特殊限制是三维都是随机排列. 陈立杰在APIO讲过,当时我翘了...... 在考场上努力卡常,结果卡常失败,应该拿到60,评测炸了,中间奇怪的RE,所以只有40. 正解是考虑一对点对(X,Y),由于有三维的对应大小,所以对应的大小关系只有 (2,1)(1,2)(3,0)(0,3)这几种, 我们要求的是所有(3,0)(0,3)的点对数目

2016.07.09

javascript 中 offsetWidth 是对象的可见宽度,包滚动条等边线,会随窗口的显示大小改变 clientWidth.offsetWidth.clientHeight区别 IE6.0.FF1.06+: offsetWidth = width + padding + border offsetHeight = height + padding + border IE5.0/5.5: offsetWidth = width offsetHeight = height offsetwid

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 输出: [

2016.07.09-10 切片操作

切片操作: 对有序数列使用下标操作进行区域切割. 最常见的的切片操作,以list为例(其他的有序数列,例如tuple和str的切片操作都跟list相同): lst[start:end:step] start:起始索引,end:结束索引,step步长 切片操作的取值区域,包含起始索引的元素,不包含结束索引的元素 正数索引,从0开始,从左往右计数 负数索引,从-1开始,从右往左计数 实例:如果step(步长)为默认值(1)或者其他正整数时,切片顺序是从左往右,start(起始索引)必须在end(结束

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如下: >>

2016/07/11 PHP接口的介绍与实现

接口定义了实现某种服务的一般规范,声明了所需的函数和常量,但不指定如何实现.之所以不给出实现的细节,是因为不同的实体可能需要用不同的方式来实现公共的方法定义.关键是要建立必须实现的一组一般原则,只有满足了这些原则才能说实现了这个接口. 接口中不定义类成员!类成员的定义完全交给实现类来完成. 先来看一个简单的例子,有个全面的认识: 01 <?php 02 interface Fruit 03 { 04     const MAX_WEIGHT = 5;   //此处不用声明,就是一个静态常量 05

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

2016.07.09-10 字符串方法

字符串(str) unicode序列 字符串是不可变的 字符串的定义:支持下标操作,支持切片操作,支持解包.封包操作. s = 'magedu' 字符串的方法: 字符串连接: join: join(...) S.join(iterable) -> str 使用S拼接一个可迭代对象的每个字符元素(只能拼接字符元素),返回一个字符串,S为一个连接符. >>> lst = ['I', 'Love', 'You'] >>> ' '.join(lst) #使用空格拼接字符串

uva111 (复习dp, 14.07.09)

 History Grading  Background Many problems in Computer Science involve maximizing some measure according to constraints. Consider a history exam in which students are asked to put several historical events into chronological order. Students who order