我们在Python中存在一个非常好用的range()与array()函数,下面作用法简要介绍。
一、range()函数
>>> range(1,10) ——>不包括10 [1, 2, 3, 4, 5, 6, 7, 8, 9] >>>range(1,10,2) ——>1到10,间隔为2(不包括10) [1, 3, 5, 7, 9] >>>range(10) ——>0到10,不包括10 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我们在编写python程序时,通过这样就可以直接列出一个序列的数字出来了。方便快捷...
二、array()函数
首先看列List表示内容:
Array=[2,3,9,1,4,7,6,8]
这个是一个数字列表,没有顺序的。
[2,3,9,1,4,7,6,8]
从前面开始的顺序列表为{0,1,2,3,4,5,6,7}——>前面序号
从后面开始的顺序列表为{-8,-7,-6,-5,-4,-3,-2,-1}——>后面序号
>>>Array[0:] ——>切片从前面序号“0”开始到结尾,包括“0”位 [2, 3, 9, 1, 4, 7, 6, 8] >>>Array[:-1] ——>切片从后面序号“-1”到最前,不包括“-1”位 [2, 3, 9, 1, 4, 7, 6] >>>Array[3:-2] ——>切从前面序号“3”开始(包括)到从后面序号“-2”结束(不包括) [1, 4, 7] >>>Array[3::2] ——>从前面序号“3”(包括)到最后,其中分隔为“2” [1, 7, 8] >>>Array[::2] ——>从整列表中切出,分隔为“2” [2, 9, 4, 6] >>> Array[3::] ——>从前面序号“3”开始到最后,没有分隔 [1, 4, 7, 6, 8]
>>> Array[3::-2] ——>从前面序号“3”开始,往回数第二个,因为分隔为“-2” [1, 3]
>>> Array[-1] ——>此为切出最后一个
8
>>>Array[::-1] ——>此为倒序
[8, 6, 7, 4, 1, 9, 3, 2]
问题:
关于Array[0:]与Array[:-1],分片问题。
它们的分片结果为:
问题:为何,都是同样是最前和最后,得出来的分片却:[0:]取全部,[:-1]却不取“-1”,这是为什么?
原因:
分片原理,若没有指定左边界或者右边界,则默认取到最左或者最右值。
[:-1]=[0:-1] ——>界定的分片边界为索引取值边界的和最后一个值,"-1"为最后一个索引值
比较难理解,是吧!
关键原因:与切片有关,如X[a:b],表示为“取出从偏移为a,直到但不包括b的内容。”!!!