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