我在python中编写了一个简单版本的Conway生命模拟。
首先,我使用下面的代码初始化了一个二维数组(我可能在这个网站上学到了)
def makearray():
for i in range(n):
a.append(['x'] * m)
...我通过存储或检查 a [2] [5] 的值或者你有什么来访问该数组中的单元格。
这很好用。但现在我意识到我需要创建第二个数组,与第一个数组相同,它将存储我在第一个数组上执行的评估结果。
我知道我可以通过重复完全相同的代码来制作第二个数组,而是调用第二个数组b而不是a。但是,如果我简单地将它变成一个三维数组,它将是一个更酷,更清洁的处理方式,而我引入的新维度只有两个单位“宽”......它只有0和1。
所以,回应上面的内容,我希望最终的结果是我的数组,以便我可以检查[1] [2] [5] ...或[0] [2]的值[ 5]。
但是,你能给我一些关于如何进行该数组初始化的技巧吗?类似于我上面粘贴的初始化循环...但是额外的水平? :)
非常感谢!
答案 0 :(得分:1)
def makematrix(n):
return [['x'] * n for i in range(n)]
threeD = [makematrix(5), makematrix(5)]
def makematrix(n):
return [['x'] * n for i in range(n)]
def makearray(m, n):
return [makematrix(n) for i in range(m)]
threeD = makearray(4, 5)
def makearray(n):
return [['x'] * i for i in range(n)]
threeD = [makearray(5), makearray(5)]