没有任何循环可能矩阵的所有值都相同吗? 例如: -
mat = [[0 for i in range(3)]for i in range(3)]
mat = [False]*(3*3)
print(mat)
答案 0 :(得分:1)
使用后者不推荐。列表不能在python中复制。
>>> mat = [[False]*3]*3
>>> mat
[[False, False, False], [False, False, False], [False, False, False]]
>>> mat[2][1] = True
>>> mat
[[False, True, False], [False, True, False], [False, True, False]]
注意所有中间单元格是如何转为True
。
您的第一种方法是正确的,但为了使其更具可读性/更少混淆,您应该在循环中使用不同的变量名。
>>> mat = [[False for i in range(3)] for j in range(3)]
>>> mat[2][1] = True
>>> mat
[[False, False, False], [False, False, False], [False, True, False]]