On 13/12/11 20:39, Kaixi Luo wrote:
I want to create a list of lists of lists (listB) from a list of lists
(listA). Below there's a snippet of my code:
listA = [[] for i in range(9)]
listB = [[] for i in range(3)]
So list A containds 9 empty lists
And list B contains 3 empty lists
count = 0
for i in range(3):
for j in range(3):
listB[i].append(listA[count])
count+=1
And you want to add the 9 empty lists in A to the 3 empty lists in B to
get a structure like:
listB = [
[ [],[],[] ],
[ [],[],[] ],
[ [],[],[] ]
]
Is that it?
And in more general terms you want to create a list of len(B) sublists
each of which holds len(A)/len(B) elements from A?
lets call the sizes La and Lb
Result = [ {...} for n in range(0,La,Lb)]
where {...} = listA[n:n+Lb]
So for your example:
>>> A = [ [n] for n in range(9) ]
>>> A
[[0], [1], [2], [3], [4], [5], [6], [7], [8]]
>>> B = [ A[n:n+3] for n in range(0,9,3) ]
>>> B
[ [[0], [1], [2]],
[[3], [4], [5]],
[[6], [7], [8]]]
The numbers just to help see which list goes where...
Now I could have miusunderstood.
Is that what you want?
--
Alan G
Author of the Learn to Program web site
http://www.alan-g.me.uk/
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor