我们初始化一个嵌套着几个列表的列表,这里我们使用列表推导式:
board = [['_']*3 for i in range(3)] print(board) board[1][2] = 'X' print(board)
结果如下
[['_', '_', '_'], ['_', '_', '_'], ['_', '_', '_']] [['_', '_', '_'], ['_', '_', 'X'], ['_', '_', '_']]
可以看出三个列表指向的不是同一个对象
但是如果用另一种方法,看上去很方便,实则是错误的:
weird = [['_'] * 3] * 3 print(weird) weird[1][2] = 'O' print(weird)
从结果可以看出来第二种方法指的是同一个对象
还有这中本质也是错误的
rwo = ['_']*3 board = [] for i in range(3): board.append(row)
将同一个对象追加到board中,很明显这是错误的。