multidimensional-array - 在 python 中,二维 array

我想知道如何在python中声明一个二维数组。


arr = [[]]

arr[0].append("aa1")
arr[0].append("aa2")
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")

前两个任务工作正常。但是,当我尝试做[1] .append("bb1")的时候我,得到了以下错误

IndexError : list index out of range .

时间:

你不能在python中声明数组或其他任何内容,你只需给(新建)变量赋值,如果需要多维数组,只需将新数组添加为arary元素即可。


arr = []
arr.append([])
arr[0].append('aa1')
arr[0].append('aa2')

或者


arr = []
arr.append(['aa1', 'aa2'])

在python中没有多维数组,你所拥有的是包含其他列表的列表。


>>> arr = [[]]
>>> len(arr)
1

你所做的是声明一个包含单个列表的列表,所以,arr[0]包含一个列表,但是,没有定义arr[1]

你可以定义包含两个列表的列表,如下所示:

 
arr = [[],[]]

 

或者定义一个更长的列表,你可以使用:


>>> arr = [[] for _ in range(5)]
>>> arr
[[], [], [], [], []]

你不应该做的是:


arr = [[]] * 3

这将在容器列表中的所有三个位置都显示相同的列表:


>>> arr[0].append('test')
>>> arr
[['test'], ['test'], ['test']]

你在这里使用的不是数组,而且是列表的(列表)。

如果要在python中使用多维数组,可以使用Numpy数组,你需要提前知道形状。

例如:


 import numpy as np
 arr = np.empty((3, 2), dtype=object)
 arr[0, 1] = 'abc'

你的语句也可以写得更简单些


arr = [
 ["aa1", "aa2"],
 ["bb1", "bb2", "bb3"]
]

试图附加到数组中的第二个元素,但是,它不存在,创建它。


arr = [[]]

arr[0].append("aa1")
arr[0].append("aa2")
arr.append([])
arr[1].append("bb1")
arr[1].append("bb2")
arr[1].append("bb3")


a = [[] for index in range(1, n)]

python 构建multi-dimensional列表时我通常使用ThiefMaster类似的解决方案,而不是附加项指数 0, 然后附加项指数 1 等等, 我总是使用指数 -1 自动索引的数组中的最后一项。

等等


arr = []

arr.append([])
arr[-1].append("aa1")
arr[-1].append("aa2")

arr.append([])
arr[-1].append("bb1")
arr[-1].append("bb2")
arr[-1].append("bb3")

将产生 2 D-array ( 实际上是列表列表) 你在。

我们可以按如下方式动态创建多维数组

创建2个变量,从标准输入读取x和y:


 print("Enter the value of x: ")
 x=int(input())

 print("Enter the value of y: ")
 y=int(input())

使用以下代码创建一个列表,其中包含用0填充的初始值,或者使用以下代码,


z=[[0 for row in range(0,x)] for col in range(0,y)]

为数组数据创建行和列数。

从标准输入中读取数据:


for i in range(x):
 for j in range(y):
 z[i][j]=input()

显示结果:


for i in range(x):
 for j in range(y):
 print(z[i][j],end=' ')
 print("n")

或者使用另一种方式显示上面动态创建的数组,


for row in z:
 print(row)

...