编程语言中的冒号,似乎都有一种 全部 的意思在里面
1.单个冒号的情况
1.前后都有
arr = [1, 2, 3, 4, 5, 6, 7]
print(arr[:3])
输出结果:[2,3]
2.只写前面
arr = [1, 2, 3, 4, 5, 6, 7]
print(arr[3:])
输出结果:[4,5,6,7]
就从下标3到最后。
3.只写后面
arr = [1, 2, 3, 4, 5, 6, 7]
print(arr[:3])
打印结果:[1,2,3]
打印到下标为2那一项,好像python的区间表示原则就是左闭右开的。
4.出现负号
冒号前后指定位置的变量或者常量还有更灵活的用法,例如可以指定为负数,例如 arr[2:-2]
,其中-2代表的含义是倒数第二个位置。本质上是用 len(arr)+1-2
计算得位置。
自己的理解:当负号做索引下标使用时,指代的是从后往前数第几个。
[0,3,5,7]
[0,1,2,3]
[-4,-3,-2,-1]
如上图,0的索引下标既可以是 0 也可以是 -4 。7的坐标既可以是3,也可以是-1。
2.两个冒号的情况
基本用法是:arr[开始位置:结束位置(不包含):步长]
步长:-1就是倒着走一步,-2就是倒着走两步。
然后:
1. 省略开始位置值:则默认值是遍历顺序上的第一个位置。就从第一个开始。
2. 省略结束位置值:则默认值是遍历顺序上最后一个位置。就干到最后一个。
3. 省略迭代步数(通常是不写第二个冒号),默认值是1(顺序的步数为1的遍历)
3.矩阵中冒号(感觉跟matlab差不多,后面用到再学)