我正在研究Python,无论我走到哪里,我都看到2D数组的初始化像是[[1、2、3],[4、5、6]]。
如何以1:1的比例创建宽度/高度2D样式的数组?
我正在尝试使用p5py库以以下样式绘制网格:https://www.pyseroptics.com/wp-content/uploads/2017/07/R1_Grid-1.jpg。
columns = 50
rows = columns
area = [columns]
#----------------------------#
for i in range(columns): #
rows = [] #
for j in range(columns): # Main part of this question
rows.append(input()) #
area.append(rows) #
#----------------------------#
上面,您可以看到我使用了哪些变量以及如何尝试使用它。
这将是正确的做法吗?我不是专家,但涉及2D数组时,就像是我刚接触编程。
答案 0 :(得分:0)
您已接近要实现的目标。如果我们通过Python解释器(如IDLE)运行您的代码,将columns
更改为3以进行更轻松的测试,并提供9个4
作为输入,我们将得到以下结果:
[3, ['4', '4', '4'], ['4', '4', '4'], ['4', '4', '4']]
无关的3
出现在数组开头的原因是由于以下语句:
area = [columns]
这会将area
初始化为一个数组,唯一的元素是columns
(或换句话说,area = [3]
)。为了解决这个问题,我们可以简单地更改行以将area
初始化为一个空列表,然后再使用for循环来获取用户输入。您已经在代码中的其他地方执行了此操作...看看是否可以解决! :)