in_file = open("3.8.2.txt",'r')
height = 8
width = 11
board = []
liner = []
for i in range(200):
liner.append("0")
for i in range(200):
board.append(liner)
for i in range(height):
line = in_file.readline().strip("\n").lower()
for j in range(len(line)):
board[50 + i][50 + j] = line[j]
我正试图在一堆0的周围放置一个2d板。不是在中间放置一块漂亮的电路板,而是将电路板的最后一行放在电路板上每一行的中间。我不明白为什么。
以下是输出:
00000000000000000000000000000000000000000000000000yuiqlxcnbjf000000000000000000000000
00000000000000000000000000000000000000000000000000yuiqlxcnbjf000000000000000000000000
00000000000000000000000000000000000000000000000000yuiqlxcnbjf000000000000000000000000
00000000000000000000000000000000000000000000000000yuiqlxcnbjf000000000000000000000000
00000000000000000000000000000000000000000000000000yuiqlxcnbjf000000000000000000000000
我的预期输出将是这样的:
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
00000000000000000letterss00000000000000000000000000000
00000000000000000letterss00000000000000000000000000000
00000000000000000letterss00000000000000000000000000000
00000000000000000letterss00000000000000000000000000000
00000000000000000letterss00000000000000000000000000000
000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000
答案 0 :(得分:3)
实际问题在于这些
for i in range(200):
board.append(liner)
您没有创建200个新列表并将其附加到board
。相反,您将向板中的相同列表添加200个引用。你应该做的是,创建linear
的副本并将其附加到这样的
for i in range(200):
board.append(liner[:])
董事会准备可以这样写出
board = [["0"] * 200 for _ in range(200)]