在python中,使用相同的bool值初始化矩阵?

时间:2017-03-23 06:08:04

标签: python

没有任何循环可能矩阵的所有值都相同吗? 例如: -

mat = [[0 for i in range(3)]for i in range(3)]

mat = [False]*(3*3)

print(mat)

1 个答案:

答案 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]]