我在Python中声明了一个名为path的(5x6)列表:
path = [[' ']*6]*5
现在,当我将任何一个元素的值更改为:
path[4][5] = '*'
或
path[0][5] = '*'
我得到的输出为:
[' ', ' ', ' ', ' ', ' ', '*']
[' ', ' ', ' ', ' ', ' ', '*']
[' ', ' ', ' ', ' ', ' ', '*']
[' ', ' ', ' ', ' ', ' ', '*']
[' ', ' ', ' ', ' ', ' ', '*']
也就是说,指定列的所有元素都变为'*'。为什么会这样? 我的猜测是,这可能与Python中实现这种简写符号的方式有关。也许解释器占用第一行并将其复制下来用于所有列。