我有以下似乎无法正常工作的代码:
from pprint import pprint
sizex = 5
sizey = 5
grid = [[0]*8]*8
cordx = 2
cordy = 3
num = 10
for x in range(sizex):
for y in range(sizey):
if grid[cordx+x][cordy+y] != 0:
grid[cordx+x][cordy+y] = 'x'
else:
grid[cordx+x][cordy+y] = num
pprint(grid)
不是绘制10的平方,而是稍后从网格[2] [3]开始到网格[7] [8]结束的'x',而是开始在grid [0] [3]进行绘制通往grid [8] [8]的方式,为什么呢?我在代码中找不到错误。
所需的输出:
[[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
实际输出:
[[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0],
[0, 0, 0, 'x', 'x', 'x', 'x', 'x', 0, 0]]