我正在使用列表列表来存储 python 中的矩阵。我尝试按如下方式初始化 2x3 零矩阵。
mat=[[0]*2]*3
但是,当我更改矩阵中一项的值时,它会更改该条目的值every行,因为每行的 idmat
是一样的。例如,分配后
mat[0][0]=1
mat
is [[1, 0], [1, 0], [1, 0]]
.
我知道我可以使用循环创建零矩阵,如下所示,
mat=[[0]*2]
for i in range(1,3):
mat.append([0]*2)
但有人可以告诉我一种更Pythonic的方式吗?
Use a 列表理解 http://docs.python.org/tutorial/datastructures.html?highlight=list%20comprehension#list-comprehensions:
>>> mat = [[0]*2 for x in xrange(3)]
>>> mat[0][0] = 1
>>> mat
[[1, 0], [0, 0], [0, 0]]
或者,作为一个函数:
def matrix(rows, cols):
return [[0]*cols for x in xrange(rows)]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)