Create a 2D list out of 1D list

后端 未结 3 1391
梦如初夏
梦如初夏 2020-12-11 15:31

I am a bit new to Python and I want to convert a 1D list to a 2D list, given the width and length of this matrix.

Say I have a

相关标签:
3条回答
  • 2020-12-11 15:49

    NumPy's built-in reshape function can be used to do such a task.

    import numpy
    
    length = 2
    width = 2
    _list = [0,1,2,3]
    a = numpy.reshape(a, (length, width))
    numpy.shape(a)
    

    As long as you change the values within your list, and accordingly update the values of 'length' and 'width', you shouldn't receive any error.

    0 讨论(0)
  • 2020-12-11 15:52

    Try something like that:

    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]]
    
    0 讨论(0)
  • 2020-12-11 15:58

    I think you should use numpy, which is purpose-built for working with matrices/arrays, rather than a list of lists. That would look like this:

    >>> 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)
    

    Avoid calling a variable list as it shadows the built-in name.

    0 讨论(0)
提交回复
热议问题