Я пытаюсь создать двумерный массив / список, который может динамически изменяться на основе одного числа, так что, скажем, я ввел число 3, это создаст двумерный массив, подобный этому, с тремя строками и тремя столбцами. ввод 10 приведет к созданию массива с 10 столбцами и 10 строками и т. д.
array = [
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
]
Я немного исследовал переполнение как в Google, так и в стеке, и ни один из них не дал результатов, которые действительно мне очень помогают.
На данный момент у меня есть функция, которая принимает один параметр (numberOfCells) и использует для циклов, чтобы попытаться заполнить массив, возвращает 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, есть ли что-то, что я должен делать по-другому?
или я к этому совершенно неверно отношусь? Если да, то как мне это сделать?
Спасибо, Ашер