python布尔数组指针行为

时间:2014-08-09 16:58:48

标签: python arrays pointers

布朗是否有指针? 我有这个奇怪的情况:

visited = [[False]*4]*4
visited[0][1] = True
print visited
>>> [[False, True, False, False], [False, True, False, False], [False, True, False, False], [False, True, False, False]]

我该如何避免这种情况?

谢谢!

1 个答案:

答案 0 :(得分:0)

当您执行[[False]*4]*4时,您似乎正在创建[False,False,False,False]列表,然后对该完全相同的列表进行四次引用,而不是四次复制。您可能必须使用for循环或列表推导来避免这种情况发生。

visited = []
for i in range(4):
  falselist = [False]*4
  visited.append(falselist)