1、定义列表
nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
2、单冒号用法
2.1、[:-1]
首先 nums[-1] 代表列表的最后一个元素
nums[-1]
结果:
10
接着进行 nums[:-1]
nums[:-1] #除了最后一个取全部,最后一个元素取不到
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2.2、[0:]
首先 nums[0] 代表列表的第0个元素,也就是最左边的元素
nums[0]
结果:
0
nums[0:]
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
通过这两个案例,我们可以看到,在取元素的时候是区间左闭右开的 [ )
验证一下
nums[0: 5]
结果:
[0, 1, 2, 3, 4]
单冒号取反向元素步长-1
nums[5:0:-1]
结果:
[5, 4, 3, 2, 1]
同样是左闭右开,和大小无关,右边的0没有取到
参数解析:
5代表起始位置,可以取到;
0代表终止位置,取不到;
-1代表步长是-1,
单冒号取反向元素步长-2
nums[5:0:-2]
结果:
[5, 3, 1]
同样是左闭右开,和大小无关,右边的0没有取到
参数解析:
5代表起始位置,可以取到;
0代表终止位置,取不到;
-2代表步长是-2,
取所有元素反向,用到双冒号::
nums[::-1]
结果:
[10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
取全部元素正向,单冒号,双冒号都可以
nums[::] #双冒号取全部元素
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
nums[:] #单引号取全部元素
结果:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
取某个区间
nums[5:9:2]
结果:
[5, 7]
nums[9:5:-2]
结果:
[9, 7]
按照某个步长取元素
nums[::2]
结果:
[0, 2, 4, 6, 8, 10]
nums[2::2]
结果:
[2, 4, 6, 8, 10]
nums[::-2]
结果:
[10, 8, 6, 4, 2, 0]
nums[:8:2]
结果:
[0, 2, 4, 6]