python创建⼆维数组⽅法
#Python# ⼆维数组的定义、使⽤的⼏种⽅法
通常的困扰
1、先介绍最简单的⼀种⽅式
2、再介绍最常见的⼀种⽅式
3、最后介绍最暴⼒直观的⼀种⽅式
通常的困扰
之前对Python⾥⾯创建、使⽤⼆维数组也很懵,于是也上⽹查了⼀些讲解,也发现⼀些类似的问题,⼤多数存在着 以为定义正确了⼆维数组,但修改数据的时候,发现数据经常⼀起串改。如:
b=[[0,0,0]]*3
b[0][1]=1    #这⾥因为初始[0,0,0]可以这样写数据,如果初始空数组则不能
python 定义数组print(b)
b[1].append(3)
print(b)
1
2
3
4
5
输出:
[[0, 1, 0], [0, 1, 0], [0, 1, 0]]
[[0, 1, 0, 3], [0, 1, 0, 3], [0, 1, 0, 3]]
因为像这种*3操作,其数据在三个数组⾥会被⼀起改掉。
1、先介绍最简单的⼀种⽅式
因为Python的数组本⾝就是动态可变的,同时提供append()函数,该函数不仅可以在⼀个数组后⾯添加数字,也可以在后⾯任意添加数组,如:
c = []
c.append([1,2,3,4])
c.append([5,6,7,8])
c.append(9)
print(c)
1
2
3
4
5
最后输出为:
[[1, 2, 3, 4], [5, 6, 7, 8], 9]
该种⽅法在 已建⽴ 了的数组基础上可以通过c[ i ][ j ]的⽅式对数据修改和读取:
c[0][1]=10
1
输出为:
[[1, 10, 3, 4], [5, 6, 7, 8], 9]
2、再介绍最常见的⼀种⽅式
b=[[] for i in range(4)]
b[0].append(5)
b[1].append(6)
print(b)
1
2
3
4
最后输出为:
[[5], [6], [ ], [ ]]
该种⽅法在最⼤的好处在于通过b[ i ]来存储⼆维数据,更加直观和清晰。但需先已知数据⾏数,这⾥是四⾏数据。
但⼀旦对数据没有通过append()⽅式添加,⽽是在位置上直接赋值如:
b=[[] for i in range(4)]
b[0]=5
b[1].append(6)
print(b)
1
2
3
4
最后输出为:
[5, [6], [ ], [ ]]
看输出就知道对于b[1] 以后就只能是⼀个数字5,不能再在此位置存储数据。
3、最后介绍最暴⼒直观的⼀种⽅式
a=[[[]for i in range(3)]for i in range(4)]
1
最后输出为:
[[[], [], []], [[], [], []], [[], [], []], [[], [], []]]
显然建⽴了四⾏三列的矩阵,且每个位置上也是数组的形式,如果⽐较习惯于通过a[i][j]这样的⽅式来存储读取数据,这种⽅式很适合,同时也可以在 未建⽴ 数据(即还没有实际数据)的基础上,也能通过c[ i ][ j ]的⽅式存储修改数据。弊端是要先知道⾏列数。如果完全了解上⾯两种⽅式的话,这种建⽴⼆维数组⽅式感觉很没必要。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。