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