我正在尝试创建一个可以根据一个数字动态更改的2D数组/列表,所以说我输入数字3,它会像这样创建一个二维数组,有三行三列。输入10将创建一个包含10列和10行的数组等。array = [
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
]
我已经研究了很多谷歌和堆栈溢出,也没有出现实际帮助我很多的结果。
我目前所拥有的是一个函数,它接受一个参数(numberOfCells)并使用for循环来尝试填充数组,它返回TypeError: 'int' object is not iterable,所以我愿意接受以其他方式实现它的建议
以下两个代码块都将使用此类创建一个新单元格class Cell:
def __init__(self, id):
self.infected = False
self.dead = False
self.id = id
def printId(self):
print(self.id)
def createTestingEnv(numberOfCells):
# creates a simulated cell tissue
row = list(range(numberOfCells + 1)) # +1 because range uses < not <=
column = numberOfCells
env = [[]]
for i in range(numberOfCells):
for j in range(numberOfCells):
env.append(list(i))
# env = list([row] * column) # create a 2D array/list based on number of cells
print(env)
createTestingEnv(3)
(上图)此代码返回错误,因此我不知道这是否是正确的方法。
(下面)这段代码的作品,但它不会产生我想要的结果def createTestingEnv(numberOfCells):
# creates a simulated cell tissue
row = list(range(numberOfCells + 1)) # +1 because range uses < not <=
column = numberOfCells
env = list([row] * column) # create a 2D array/list based on number of cells
for i in range(numberOfCells):
for j in range(numberOfCells):
k = Cell(i + j)
k.printId()
createTestingEnv(10)
我是python的新手,有什么我应该做的不同吗?或者我采取了一种完全错误的做法?如果是这样,我该怎么做呢?
谢谢,阿舍尔