20

私はPythonに少し慣れていないので、andを指定して1Dリストを2Dリストに変換したいとwidth思いlengthますmatrix

を持っていて、このリストのマトリックスlist=[0,1,2,3]を作成したいとします。2 by 2

どうすればmatrix [[0,1],[2,3]] width=2、length= 2を取得できlistますか?

4

2 に答える 2

42

そのようなことを試してください:

In [53]: l = [0,1,2,3]

In [54]: def to_matrix(l, n):
    ...:     return [l[i:i+n] for i in xrange(0, len(l), n)]

In [55]: to_matrix(l,2)
Out[55]: [[0, 1], [2, 3]]
于 2013-02-04T06:51:41.557 に答える
11

リストのリストではなく、行列/配列を操作するために特別に作成されたnumpyを使用する必要があると思います。これは次のようになります。

>>> import numpy as np
>>> list_ = [0,1,2,3]
>>> a = np.array(list_).reshape(2,2)
>>> a
array([[0, 1],
       [2, 3]])
>>> a.shape
(2, 2)

list組み込みの名前を隠すため 、変数の呼び出しは避けてください。

于 2013-02-04T07:00:15.910 に答える