我想初始化一个包含 X 个二维元素的数组。例如,如果 X = 3,我希望它是 [[0,0], [0,0], [0,0]]。我知道 [0]*3 给出 [0, 0, 0],但是对于二维元素我该如何做呢?
问问题
1348 次
4 回答
6
试试这个:
m = [[0] * 2 for _ in xrange(3)]
在上面的代码中,将3
视为矩阵中的行数,将2
视为列数。这0
是您要用于初始化元素的值。请记住这一点:如果您使用的是 Python 3,请range
使用xrange
.
对于更通用的解决方案,请使用此功能:
def create_matrix(m, n, initial=0):
return [[initial] * n for _ in xrange(m)]
对于问题的特殊情况:
m = create_matrix(3, 2)
print m
> [[0, 0], [0, 0], [0, 0]]
或者,如果您不介意使用numpy
,您可以使用numpy.zeros()
Mellkor 的答案中所示的功能。
于 2012-04-11T04:03:28.027 回答
3
我猜numpy.zeros对此很有用。说,
x=4
numpy.zeros((x,x))
会给你:
数组([[ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0., 0., 0.], [ 0., 0 ., 0., 0.]])
于 2012-04-11T04:22:35.130 回答
0
我相信这是[[0,0],]*3
于 2012-04-11T04:02:53.400 回答
0
使用构造
[[0,0]]*3
工作得很好并返回以下内容:
[[0, 0], [0, 0], [0, 0]]
于 2012-04-11T06:45:05.827 回答