X 個の 2 次元要素を持つ配列を初期化したい。たとえば、X = 3 の場合、[[0,0]、[0,0]、[0,0]] とします。[0]*3 で [0, 0, 0] が得られることはわかっていますが、2 次元要素に対してこれを行うにはどうすればよいでしょうか。
質問する
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]]
または、 を使用しても構わない場合は、Mellkor の回答に示されているように関数をnumpy
使用できます。numpy.zeros()
于 2012-04-11T04:03:28.027 に答える
3
numpy.zerosはそのような場合に役立つと思います。言う、
x=4
numpy.zeros((x,x))
あなたに与える:
array([[ 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
正常に動作し、次を返します。
[[0, 0], [0, 0], [0, 0]]
于 2012-04-11T06:45:05.827 に答える
0
私はそれだと信じています[[0,0],]*3
于 2012-04-11T04:02:53.400 に答える