内容正文:
2.1.2 二维数组
1 10 11 20 21
2 9 12 19 22
3 8 13 18 23
4 7 14 17 24
5 6 15 16 25
5行5列
方阵
二维数组的概念
二维数组本质上是以数组作为数组元素的数组,即“数组的数组”。
二维数组又称为矩阵,行列数相等的矩阵称为方阵。
二维数组的特性
数组的存储方法是顺序存储,每个元素在存储器中占用的
空间大小相同。
“按行优先”存储二维数组时,8所在的位置表示为:a[2][1],在整个数组第12个位置。
“按列优先”存储二维数组时,8所在的位置表示为:a[1][2],在整个数组第8个位置。
按“行优先顺序”存储二维数组时,需要知道它的最大列数。若二维数组
第一个元素存放的位置为LOC(a[0][0]),最大列数为C,每个元素占用的
空间大小为s,则元素a[i][j]的存放位置为:
LOC(a[i][j])=LOC(a[0][0])+(i*C+j)*s
按“列优先顺序”存储二维数组时,需要知道它的最大行数R。元素
a[i][j]的存放位置为:
LOC(a[i][j])=LOC(a[0][0])+(j*R+i)*s
二维数组的基本操作
1.二维数组的创建
①python中创建二维数组的方式比较特殊,不能使用如同一维数组的方式创建。
例如,创建一个3行4列的二维数组,其初始化元素值均为0,代码如下:
a=[[0,0,0,0],[0,0,0,0],[0,0,0,0]]
②python中可以使用列表生成式来创建二维数组,代码如下:
a=[[0 for i in range(4)]for j in range(3)]
也可以写成a=[[0]*4 for i in range(3)]。但不能写成a=[[0]*4]*3
a=[[0]*4]*3表示对一行数据0的3次引用,3行中同一列的数据会同时被修改。
2.二维数组元素的访问
数组元素的访问指的是寻址到特定的数据元素,并根据存储地址对该
数据元素进行读取、修改等操作。二维数组的行、列下标均从0开始,
即a[0][0]表示数组的第一个元素。若用二维数组a来存储矩阵,则第
i行第j列的元素表示为a[i-1][j-1]。
a=[[i*i for i in range(5)]for j in range(5) ]
for i in range(5):