Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python:按长度拆分数组_Python_Arrays - Fatal编程技术网

Python:按长度拆分数组

Python:按长度拆分数组,python,arrays,Python,Arrays,我有一个列表作为输入,如下所示: lst = [1, 10, 100, 2, 20, 200, 3, 30, 300] lst[0:3] # => [1,10,100] lst[4:6] # => [2,20,200] lst[7:9] # => [3,30,300] 每三个元素都是一个子组,我想把它们分成几个子组,如下所示: lst = [1, 10, 100, 2, 20, 200, 3, 30, 300] lst[0:3] # => [1,10,100] ls

我有一个列表作为输入,如下所示:

lst = [1, 10, 100, 2, 20, 200, 3, 30, 300]
lst[0:3] # => [1,10,100]
lst[4:6] # => [2,20,200]
lst[7:9] # => [3,30,300]
每三个元素都是一个子组,我想把它们分成几个子组,如下所示:

lst = [1, 10, 100, 2, 20, 200, 3, 30, 300]
lst[0:3] # => [1,10,100]
lst[4:6] # => [2,20,200]
lst[7:9] # => [3,30,300]
做这件事的优雅方式是什么

我只发现:

我当然可以通过关于的代码来实现这一点,但是当输入带有更多参数时,这就不够了,比如

lst = [1, 10, 100, 2, 20, 200, 3, 30, 300, 4, 40, 400, 5, 50, 500 ...]

我想也许
重塑()
将是一个好方法?

通过列表理解:

[lst[i*3:(i+1)*3] for i in range(len(lst)//3)]
# [[1, 10, 100], [2, 20, 200], [3, 30, 300], [4, 40, 400], [5, 50, 500]]
如果需要
重塑()
功能:

def reshape(lst, n):
    return [lst[i*n:(i+1)*n] for i in range(len(lst)//n)]