两种列表初始化方式的区别:(注意避坑)
# 修改一个值,所在列的所有值将随之改变
# 实际上是对于[0] * 3的一维列表复制了3次,修改一行,其余各行的做相对应的改变
flag_list = [[0] * 3] * 3
flag_list[0][1] = 1
print(flag_list)
[0, 1, 0]
[0, 1, 0]
[0, 1, 0]
# 修改一个值,实际只改一个
visited = [[0] * 3 for _ in range(3)]
visited[0][1] = 1
print(visited)
[0, 1, 0]
[0, 0, 0]
[0, 0, 0]