首页> python> python编程基础> 文章内容
如何利用python定义数组?
来源 :中华考试网 2020-09-29
中
所谓数组,是有序的元素序列。若将有限个类型相同的变量的集合命名,那么这个名称为数组名。那么python如何定义数组呢?一起来了解下吧:
python如何定义数组
一、一维数组
1.直接定义
matrix=[0,1,2,3]
2.间接定义
matrix=[0 for i in range(4)]
print(matrix)
输出:
[0, 0, 0, 0]
3.数组乘法
matrix=[0]*5
print(matrix)
输出:
[0, 0, 0, 0, 0]
二、二维数组
1.直接定义(3*2)
matrix=[[0,0],[0,0],[0,0]]
2.间接定义(3*2)
matrix=[[0 for i in range(2)] for i in range(3)]
print(matrix)
输出:
[[0, 0], [0, 0], [0, 0]]
3.数组乘法
matrix=[[0,0]]*5
print(matrix)
输出:
[[0, 0], [0, 0], [0, 0], [0, 0], [0, 0]]
Python数组定义的方法
Python中没有数组的数据结构,但列表很像数组,如:
a=[0,1,2]
这时:a[0]=0, a[1]=1, a[[2]=2,但引出一个问题,即如果数组a想定义为0到999怎么办?这时可能通过a = range(0, 1000)实现。或省略为a = range(1000).如果想定义1000长度的a,初始值全为0,则 a = [0 for x in range(0, 1000)]
python学习课程预约提醒
- 地区:
- 北京
- 天津
- 上海
- 江苏
- 浙江
- 山东
- 江西
- 安徽
- 广东
- 广西
- 海南
- 辽宁
- 吉林
- 黑龙江
- 内蒙古
- 山西
- 福建
- 河南
- 河北
- 湖南
- 湖北
- 四川
- 重庆
- 云南
- 贵州
- 新疆
- 西藏
- 陕西
- 青海
- 宁夏
- 甘肃
- 姓名:
- 手机:
下面是二维数组的定义:
直接定义:
a=[[1,1],[1,1]]
这里定义了一个2*2的,且初始为0的二维数组。
间接定义:
a=[[0 for x in range(10)] for y in range(10)]
这里定义了10*10初始为0的二维数组。
还有更简单的字义二维数组的方法:
b = [[0]*10]*10
定义10*10初始为0的二维数组。
与a=[[0 for x in range(10)] for y in range(10)]比较:print a==b的结果为True。
但用b的定义方法代替a后,以前的可以正常运行的程序也出错了,经过仔细分析得出区别:
a[0][0]=1时,只有a[0][0]为1,其他全为0。
b[0][0]=1时,a[0][0],a[1][0],只到a[9,0]全部为1。
由此得到大数组中的10个小的一维数据全是一个相同的引用,即指向同一地址。
故 b = [[0]*10]*10并不符合我们常规意义上的二维数组。
同时经过试验:c=[0]*10的定义与c=[0 for x in range(10)]有同样的效果,而没有上面相同引用的问题,估计数组c的定义时是值类型相乘,而前面b的用类型的相乘,因为一维数组是一个引用(借用C#中的值类型和引用类型,不知是否合适)。