Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么该代码会影响两个板变量?_Python_Python 3.x - Fatal编程技术网

Python 为什么该代码会影响两个板变量?

Python 为什么该代码会影响两个板变量?,python,python-3.x,Python,Python 3.x,应该打印两个网格,一个带空格,一个不带空格,但它只打印一个只有空格的网格,从而更改原始表格 # produce board using randomized baseline pattern board = [ [nums[pattern(r,c)] for c in cols] for r in rows ] qboard = [] for line2 in board: qboard.append(line2) for i in qboard: value = ran

应该打印两个网格,一个带空格,一个不带空格,但它只打印一个只有空格的网格,从而更改原始表格

# produce board using randomized baseline pattern
board = [ [nums[pattern(r,c)] for c in cols] for r in rows ]
qboard = []


for line2 in board:
    qboard.append(line2)


for i in qboard:
    value = randint(0, 9)
    i[value]=" "

for i in qboard:
    print(i)

for j in board:
    print(j)

qboard
实际上是
board
的浅拷贝;所有子
列表
都是这两个列表中的同一对象。你需要做一个深度拷贝来避免这个问题。最小的更改是使其成为
qboard.append(第2行[:])
;更简单的方法是制作
qboard=copy.deepcopy(board)
(一次完成所有操作,允许您完全删除board中第2行的
循环)。