Turning a list into nested lists in python
This groups each 3 elements in the order they appear:
new_list = [data_list[i:i+3] for i in range(0, len(data_list), 3)]
Give us a better example if it is not what you want.
Something like:
map (lambda x: data_list[3*x:(x+1)*3], range (3))
This assumes that data_list has a length that is a multiple of three
i=0
new_list=[]
while i<len(data_list):
new_list.append(data_list[i:i+3])
i+=3
Based on the answer from Fred Foo, if you're already using numpy
, you may use reshape
to get a 2d array without copying the data:
import numpy
new_list = numpy.array(data_list).reshape(-1, 3)