我正在更改列表中的变量,我试图在每个循环后获得重置

时间:2017-02-07 01:18:58

标签: python loops

for num in range(len(boards)):
    boards[num] = boards[num] - move[1]
    print(boards)
    if xor(boards) == 0:
        winningMoves.append((boards[num], move[1]))

基本上我有一堆桩,我正在从中删除东西。但是,每次迭代后,如果列表被更改,则列表保持不变。如何在每次迭代后确保列表恢复原始状态?

2 个答案:

答案 0 :(得分:0)

for num in range(len(boards)):
    boards[num] = boards[num] - move[1]
    if xor(boards) == 0:
        winningMoves.append((boards[num], move[1]))
        boards[num] = boards[num] + move[1]

在添加数字后,只需将数字添加回列表。无论如何,谢谢你的帮助

答案 1 :(得分:-1)

要重置列表,您必须重新创建它,或将其存储为tmp变量。

在这种情况下,我决定将其存储为tmp变量。

tmpBoard={}
for key in boards.keys():
   tmpBoard[key]=boards[key]
for num in range(len(boards)):
    boards[num] = boards[num] - move[1]
    print(boards)
    if xor(boards) == 0:
        winningMoves.append((boards[num], move[1]))
        borads=tmpBoard #<-- reset list

请注意,之前的回答有错误tmpBoard=boards,这是错误的,因为在这种情况下,对电路板的更新也会出现在tmpBoard上。在这个替代案例中,tmpBoard不是一个 coy 的板,而是一个新的变量。