在我的代码中,我有嵌套列表gamelist
,定义为
gamelist = [['3'], ['2'], ['1']]
该程序的目的是将内部列表视为堆栈,将较小的元素附加到包含较大元素的堆栈或空堆栈,向上和向下扫描列表并且不重复移动。理论上这个游戏应该去:
[['3'], ['2'], ['1']]
[['3'], ['2', '1'], []]
[['3', '1'], ['2'], []]
[['3', '1'], [], ['2']]
以此类推,直到列表从小到大排序。
为了检查当前的移动与以前的移动,我创建了,它在每次移动后都附加了pastmoves
一个副本。gamelist
pastmoves.append(gamelist[:])
所以pastmoves
应该读
[[['3'], ['2'], ['1']]]
[[['3'], ['2'], ['1'], [['3'], ['2', '1'], []]]
在每次连续移动之后依此类推。
我的问题是,当游戏列表被复制时,嵌套在其中的列表不是,并且pastmoves
在两次移动后看起来像这样:
[[['3'], ['2', '1'], []], [['3'], ['2', '1'], []]]
我想这样做,以便所有底层值也是副本,并在gamelist
更改时保持静态。我怎样才能做到这一点?