【发布时间】:2013-02-10 22:01:13
【问题描述】:
在我的代码中,我有嵌套列表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 更改时保持静态。我怎样才能做到这一点?
【问题讨论】:
标签: python arrays list append nested