变量python不正确

Ste*_*nie 0 python variables

我节目的一小部分.A和B假设不同但是相同.更改后即使A = B. 有什么建议.

def reveal_board(location1, location2, a):
    b = a
    for char in board:
        if char == board[location1 - 1]:
            b[location1 - 1] = char
        if char == board[location2 - 1]:
            b[location2 - 1] = char
        else:
            b = b
    print_board(b)
    if board[location1 - 1] == board[location2 - 1]:
        return b
    else:
        return a
Run Code Online (Sandbox Code Playgroud)

Joo*_*ost 5

假设a并且b是一个更复杂的对象,例如列表或字典,你实际上并没有a在分配时复制b = a.这仅仅使得a并且b都指向同一个对象.如果你然后修改b,你也在修改a,反之亦然.

如果你想复制,请考虑像b = list(a)b = dict(a).或者,更一般地说:

import copy
b = copy.copy(a)
Run Code Online (Sandbox Code Playgroud)

甚至

import copy
b = copy.deepcopy(a)
Run Code Online (Sandbox Code Playgroud)

做一个深刻的副本.