将列表转换为python中的嵌套列表

Dou*_* AA 15 python nested list

可能重复:
如何在python中将列表转换为数组?

我怎样才能打开如下列表:

data_list = [0,1,2,3,4,5,6,7,8]
Run Code Online (Sandbox Code Playgroud)

到列表列表,如:

new_list = [ [0,1,2] , [3,4,5] , [6,7,8] ]
Run Code Online (Sandbox Code Playgroud)

即我想在列表中对有序元素进行分组,并将它们保存在有序列表中.我怎样才能做到这一点?

谢谢

jsb*_*eno 47

这按照它们出现的顺序对每个元素进行分组:

new_list = [data_list[i:i+3] for i in range(0, len(data_list), 3)]
Run Code Online (Sandbox Code Playgroud)

如果它不是你想要的,给我们一个更好的例子.


Gra*_*ham 12

这假设data_list的长度是三的倍数

i=0
new_list=[]
while i<len(data_list):
  new_list.append(data_list[i:i+3])
  i+=3
Run Code Online (Sandbox Code Playgroud)


Hyp*_*eus 5

就像是:

map (lambda x: data_list[3*x:(x+1)*3], range (3))
Run Code Online (Sandbox Code Playgroud)


Cœu*_*œur 5

根据Fred Foo 的回答,如果您已经在使用numpy,您可以使用reshape来获取二维数组而不复制数据:

import numpy
new_list = numpy.array(data_list).reshape(-1, 3)
Run Code Online (Sandbox Code Playgroud)