内容正文:
Z.
数组知识点梳理
1、 一维数组
一维数组的创建:
直接定义
间接定义
a=[0,0,0,0,0]
a=[0 for i in range(5)](规范写法)
或
a=[0]*5(常见写法)
测试结果
[0,0,0,0,0]
[0,0,0,0,0]
数组元素的访问:
数组名+下标(python中用列表模拟数组,故可以用列表名+索引的方式访问)
例:a[0] a[3]
一维数组的操作:
插入数组元素
删除数组元素
a=["data1","data2","data3","data4","data5",""]
n = 5
pos = int(input("请输入插入位置的索引值:"))
data = int(input("请输入插入内容:"))
for i in range(n, pos-1, -1):
a[i] = a[i-1]
a[pos] = data
print(a)
a=["data1","data2","data3","data4","data5"]
n=5
pos=int(input("请输入删除位置的索引值"))
for i in range(pos,n-1):
a[i]=a[i+1]
print(a[:n-1])
运行结果:
运行结果:
2、 二维数组
二维数组(矩阵)的创建:
直接定义
间接定义
a=[[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
a=[[0 for i in range(5)] for j in range(5)]
测试结果
调整格式
for i in range(len(a)):
print(a[i])
——5*5二维数组可看成5行5列的矩阵
二维数组间接定义语句拆解
r=int(input('请输入行数:'))
c=int(input('请输入列数:'))
n=c
a=[[j*n+i+1 for i in range(c)] for j in range(r)]
print(a)
r=int(input('请输入行数:'))
c=int(input('请输入列数:'))
n=c;a=[];a1=[]
for j in range(r):
for i in range(c):
a1.append(j*n+i+1)
a.append(a1)
a1=[]
print(a)
注意:j*n+i+1需要代入循环的嵌套中i与j的变化
循环的嵌套执行顺序:
j=0时,i=0、i=1、i=2……i=c-1各执行一次
j=1时,i=0、i=1、i=2……i=c-1各执行一次
……
j=r-1时,i=0、i=1、i=2……i=c-1各执行一次
运行结果:
数组元素的访问:
数组名[行下标][列下标]
例: 矩阵第1行第5列:a[0][4]
矩阵第5行第4列:a[4][3]
数组元素的存储:
分为行优先存储与列优先存储。
以行优先为例:首先将第一行(行下标为0)数组元素按照列下标顺序依次存储,再将下一行(行下标为1)数组元素按照列下标顺序依次存储,直至所有行存储完毕。
按“行优先顺序”存储二维数组时,若二维数组第一个元素存放的位置是LOC(a[0][0]),最大列数为C,每个元素占用的空间大小为s,则元素a[i][j]的存放位置为:
按“列优先顺序”存储二维数组时,需要知道它的最大行数 R。元素 a[i][j]的存放位置为:
数组的应用:
1、数组的插入与删除:
①构建原始数组:
from random import randint
a=
print(a)
运行结果:
②在第五个位置插入数组元素11:
from random import randint
a=[0]*9
for i in range(8):
a[i]=randint(1,10)
print(a)
for i in range(8,4,-1):
_____________________
a[____________________]=11
print(a)
运行结果:
③在第五个位置删除原有数组元素:
from random import randint
a=[0]*9
for i in range(9):
a[i]=randint(1,10)
print(a)
for i in range(4,8):
______________________
print(a)
运行结果:
函数
append()
在当前列表尾部追加元素,把添加的元素作为一个整体来操作
extend()
在当前列表尾部追加元素,把添加内容包含的元素逐个添加到列表中
insert()
在当前列表的指定位置插入元素,它会把添加的元素为一个整体插入到列表中
del
根据目标元素所在位置的索引进行删除
pop()
根据目标元素所在位置的索引进行删除,默认会删除列表中的最后一个元素
remove()
根据元素本身的值进行删除,该方法只会删除第一个和指定值相同的元素
数组链表专题第 1 页
学科网(北京)股份有限公司
$