python基础知识之列表的分片

来源:互联网 发布:软件安全测试工具 编辑:程序博客网 时间:2024/05/17 02:05

python基础知识之列表的分片

分片操作用来访问一定范围内的元素,通过在方括号内用冒号隔开两个索引来实现。第一个索引的元素是开始点,包括在结果之中,第二个索引的元素是结束点,不包括在结果之中。
>>> tag='www.python.com'>>> tag[4:10]'python'>>> tag[4:-4]'python'>>>

千万记住索引是从0开始的,列表中的牵引与元素在列表中的第几个位置数刚好是多一的。
>>> num=[1,2,3,4,5,6,7,8,9,10]>>> num[4:6][5, 6]>>> num[0:1][1]>>>
上面例子中,num[4:6]表示访问的一个元素的索引是4,由于索引从0开始,即列表中的第5个元素,访问截至索引为6的元素(访问元素不包含此元素),即列表中第7个元素。所以,分片结果为列表中第5个元素[5]和第六个元素[6]组成的列表。以此类推,num[0:1]表示访问索引为0的元素,即为列表第一个元素[0]。

注意:分片中最左边的索引要比它右边索引出现的早,否则就会成为空列表。
>>> num[-3:-1][8, 9]>>> num[-3:0][]>>>

捷径1:访问倒数几个元素(包括最后一个元素)。

>>> num[-3:][8, 9, 10]>>>


捷径2:访问前面几个元素(包括第一个元素)。

>>> num[:4][1, 2, 3, 4]>>>


捷径3:访问全部元素。

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

步长问题:

其实,分片除了开始点和结束点外还有一个参数,就是步长。通常步长都是隐式设置的,像以上所有例子中步长都是隐式设置为1了。步长可以为正数,可以为负数,但不能为0.

>>> num[10:0:2][]>>> num[::1][1, 2, 3, 4, 5, 6, 7, 8, 9, 10]>>> num[::2][1, 3, 5, 7, 9]>>> num[3:7:3][4, 7]>>>
 >>> num[0:10:-2][]>>> num[::-1][10, 9, 8, 7, 6, 5, 4, 3, 2, 1]>>> num[8::-1][9, 8, 7, 6, 5, 4, 3, 2, 1]>>> num[5::-2][6, 4, 2]>>> num[:5:-2][10, 8]>>>
>>> num[::0]Traceback (most recent call last):  File "<pyshell#21>", line 1, in <module>    num[::0]ValueError: slice step cannot be zero>>> 

步长为正数,列表从头部向右访问元素,步长为负数,列表从尾部向左访问元素。在步长问题中,一定要遵守第一个索引比第二个早出现原则。num[10:0:2]中步长为正数,列表从头部向右访问元素,但是由于第一个索引10比第二个索引0晚出现,所以结果为空列表。num[0:10:-2]中步长为负数,列表从尾部向左访问,第一个索引0比第二个索引10晚出现,所以结果为空列表。

0 0
原创粉丝点击