我节目的一小部分.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)
假设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)
做一个深刻的副本.