如何在Python中初始化二维元素的一维数组?

时间:2012-04-11 04:01:56

标签: python arrays

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

4 个答案:

答案 0 :(得分: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的回答所示。

答案 1 :(得分: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。]])

答案 2 :(得分:0)

我相信它是[[0,0],]*3

答案 3 :(得分:0)

使用构造

[[0,0]]*3

工作正常并返回以下内容:

[[0, 0], [0, 0], [0, 0]]