我对 Python 有点陌生,我想将 1D 列表转换为 2D 列表,给定this的width
and 。length
matrix
假设我有一个list=[0,1,2,3]
并且我想制作2 by 2
这个列表的矩阵。
我怎样才能得到matrix [[0,1],[2,3]]
width
=2, length
=2list
呢?
尝试这样的事情:
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]]
我认为您应该使用专为处理矩阵/数组而构建的 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
,因为它会隐藏内置名称。