Python嵌套循环的行为与我期望的不同

Python嵌套循环的行为与我期望的不同,python,arrays,Python,Arrays,这不是家庭作业问题。与此非常相似的代码是更大项目的基础。我已经有一段时间没有经常使用python了 width = 10 height = 10 board = [[0]*(2*width + 1)]*(2*height + 1) for k in range(height): for j in range(width): if (k%2 == 1): board[k][j] = 11 result = [] for i in board:

这不是家庭作业问题。与此非常相似的代码是更大项目的基础。我已经有一段时间没有经常使用python了

width = 10
height = 10
board = [[0]*(2*width + 1)]*(2*height + 1)
for k in range(height):
    for j in range(width):
        if (k%2 == 1):
            board[k][j] = 11
result = []
for i in board:
    for j in i:
        result.append(str(j))
        result.append(" ")
    result.append('\n')

print("".join(result))
这是输出,与代码一样直接复制和粘贴:

11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 
11 11 11 11 11 11 11 11 11 11 0 0 0 0 0 0 0 0 0 0 0 

我打算让代码做的是,第一个嵌套循环应该为数组左上角10×10中的每个元素填充21×21数组。然后第二个嵌套循环应该输出该数组。我做错了什么?谢谢你,我很困惑,因为我觉得我已经解决了这个问题一百万次了,但结果并不像预期的那样。经典问题:
[[0]*(2*width+1)]*(2*height+1)]
创建一个“行”
[0]*(2*width+1)
然后创建一个对该行的引用列表

要创建多个副本,您可以使用以下方法:

[[0]*(2*width + 1)] for _ in range(2*height + 1)]

你的棋盘上反复出现同样的列表。您需要为每一行创建一个新列表,例如,对于范围(2*高度+1)内的x,board=[[0]*(2*宽度+1)]