2

我想初始化一个包含 X 个二维元素的数组。例如,如果 X = 3,我希望它是 [[0,0], [0,0], [0,0]]。我知道 [0]*3 给出 [0, 0, 0],但是对于二维元素我该如何做呢?

4

4 回答 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 回答