
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
4.2.3 索引、切片和迭代
一维数组也是一维矩阵,同样也是一个列表,所以n维矩阵(n维数组)依然支持索引、切片和迭代操作,示例如下:

输出结果:


多维矩阵中的每个维度都有独立的一组序号,所以二维矩阵可以用两个数进行索引;n维矩阵可以用n个数进行索引,示例如下:


输出结果:

从上面的示例中可以看出:索引和切片都适用于多维数组/矩阵,且打印二维数组可以用一个逗号隔开,打印一整行可以省略逗号。在讲解多维数组/矩阵的迭代之前,先来介绍n维数组/矩阵打印时的省略规则,可以用一个点“.”来代替成对的“,:”,个数不限,示例如下:

输出结果:

下面来看多维数组/矩阵的迭代。既然矩阵有多个维度,那么在迭代的时候会根据哪个维度迭代呢?答案是明确的,自然是最外层的维度。可能读者还会有一个疑问,如何迭代内层的维度呢?请看下面的示例:


输出结果:


可以发现,flat方法是将一个n维数组展开成一维后,再将结果打印出来,而默认遍历的是第一个维度,即最外层的维度。