Python中双冒号的作用[::]
Python sequence slice addresses can be written as a[start:end:step] and any of start, stop or end can be dropped.
python序列切片地址可以写为[开始:结束:步长],其中的开始和结束可以省略
-
range(n)生成[0,n)区间整数
range(10)
[0,1,2,3,4,5,6,7,8,9] -
开始start省略时,默认从第0项开始
range(10)[:10:2]
[0,2,4,6,8] -
结尾省略的时候,默认到数组最后。
range(10)[1::2]
[1,3,5,7,9] -
开始和结尾不省略的时候
range(10)[2:6:]#step省略默认为1
[2,3,4,5]range(10)[2:6:1]
[2,3,4,5] -
步长step=n;代表从start开始(start也算)每隔step间隔,取一个数,一直到结尾end
range(20)[::3]
[0,3,6,9,12,15,18] -
当step等于负数的时候,从右向左取数。
range(10)[::-1]
[9,8,7,6,5,4,3,2,1,0]range(10)[::-2]
[9,7,5,3,1]
a[start:end]:取得范围为[start,end)
a=[[1,2,3],[4,5,6],[7,8,9]]
b=a[1:2]
[[4, 5, 6]]
a[:end]:取得范围为[0,end)
a=[[1,2,3],[4,5,6],[7,8,9]]
b=a[:1]
[[1, 2, 3]]
a[start:]:取得范围为从start到最后(包括最后)
a=[[1,2,3],[4,5,6],[7,8,9]]
b=a[1:]
[[4, 5, 6], [7, 8, 9]]