回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我有一个8x8数组,在某些位置包含对象,在其他位置包含对象。(这是一个棋盘)</p>
<p>我的代码运行缓慢,部分原因是使用了<code>copy.deepcopy(x)</code>,所以我做了一些测试,发现遍历数组的速度快了32倍。当我运行代码时,它抛出了错误,所以我比较了迭代和<code>copy.deepcopy(x)</code>的结果,结果不一样。我看不出哪里出了问题,也找不到类似的东西(我已经找过了)</p>
<p>功能如下:</p>
<pre><code>def makeCopy(array):
new = [[],[],[],[],[],[],[],[]]
for x in range(0,8):
for y in range(0,8):
new[x].append(array[x][y])
a = copy.deepcopy(array)
if new != a:
print('failed')
else:
print('good')
return new
</code></pre>
<p>当它被调用时,它会打印出<code>failed</code>,所以它们不一样,这破坏了我的其余代码</p>
<p>我传递的是这样的东西(某些工件位置可能不同):</p>
<pre><code>currentGameState = [[Rook('black', [0,0]),Knight('black',[1,0]),Bishop('black', [2,0]),Queen('black',[3,0]),King('black',[4,0]),Bishop('black', [5,0]),Knight('black',[6,0]),Rook('black', [7,0])],
[Pawn('black', [0,1]),Pawn('black', [1,1]),Pawn('black', [2,1]),Pawn('black', [3,1]),Pawn('black', [4,1]),Pawn('black', [5,1]),Pawn('black', [6,1]),Pawn('black', [7,1])],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[' ',' ',' ',' ',' ',' ',' ',' '],
[Pawn('white', [0,6]),Pawn('white', [1,6]),Pawn('white', [2,6]),Pawn('white', [3,6]),Pawn('white', [4,6]),Pawn('white', [5,6]),Pawn('white', [6,6]),Pawn('white', [7,6])],
[Rook('white', [0,7]),Knight('white', [1,7]),Bishop('white', [2,7]),Queen('white',[3,7]),King('white',[4,7]),Bishop('white', [5,7]),Knight('white',[6,7]),Rook('white', [7,7])]]
</code></pre>