如何存储不会改变的变量

时间:2016-05-01 16:45:37

标签: python list

我为像candycrush这样的游戏回溯了一些东西...当然,对于我的回溯,我需要一直改变我的初始板... 但是在游戏结束时,它并没有返回old_board ..我怎么能改变那个

我尝试了一个功能:

<div class="divSM" id="Mother">
  <div class="divXS" id="Daughter">
    <div class="divXXS" id="grandDaughter"></div>
  </div>
</div>

<div class="divSM" id="Father">
  <div class="divXS" id="Son">
    <div class="divXXS" id="grandSon"></div>
  </div>
</div>

在我的回溯功能中,我创建了一个存储此函数的变量,但我仍然会改变一切 我无法使用copy()函数

1 个答案:

答案 0 :(得分:3)

由于主板是2-dim list,代码中的i也是list。然后,你仍然会在游戏中改变这些列表。改变如下:

for i in board:  # if board is a nested list, i is a list
    original_board.append(i[:])  # use a copy of the list

甚至更短(使用list comprehension和更有说服力的变量名称):

def return_original_board(board):
    return [row[:] for row in board]