以下是我的变量:
代码如下:
for neighbor in adjacencyList[node]:
if color in availableColorsForNode[neighbor]:
availableColorsForNode[neighbor].remove(color) #problem is here somehow
我期待着:
但是我得到了(1在任何地方都被移除):
为什么会这样? 当我做一个简单的测试,如以下,我得到了预期的输出:
test = [[1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3], [1, 2, 3]]
test[4].remove(1)
print(test)
我想你应该把你的测试
test
包含对相同列表的引用(而不是列表的相同副本)。如果您对其中任何一个调用.remove
(例如test[4].remove(1)
),那么更改将反映在所有这些函数中。因为test
中的所有项仍然引用相同的列表lst
。你知道吗关于如何解决这个问题,这里有四种不同的建议(如果您的列表包含不可变的数据类型,您将不需要
deepcopy
);我建议您选择其中一种类型,不要将它们混合使用;这里的代码只是为了表示可能性…:如果你想重复,你可以这样做:
相关问题 更多 >
编程相关推荐