On 23/07/2013 22:52, st...@divillo.com wrote:
I think that itertools may be able to do what I want but I have not been able
to figure out how.
I want to convert an arbitrary number of lists with an arbitrary number of
elements in each list into a single list as follows.
Say I have three lists:
[[A0,A1,A2], [B0,B1,B2] [C0,C1,C2]]
I would like to convert those to a single list that looks like this:
[A0,B0,C0,C1,C2,B1,C0,C1,C2,B2,C0,C1,C2,A1,B0,C0,C1,C2,B1,C0,C1,C2,B2,C0,C1,C2,A2,B0,C0,C1,C2,B1,C0,C1,C2,B2,C0,C1,C2]
An easier way to visualize the pattern I want is as a tree.
A0
B0
C0
C1
C2
B1
C0
C1
C2
B2
C0
C1
C2
A1
B0
C0
C1
C2
B1
C0
C1
C2
B2
C0
C1
C2
A2
B0
C0
C1
C2
B1
C0
C1
C2
B2
C0
C1
C2
Using recursion:
def tree_list(items):
if len(items) == 1:
return items[0]
sublist = tree_list(items[1 : ])
result = []
for item in items[0]:
result.append(item)
result.extend(sublist)
return result
items = [["A0","A1","A2"], ["B0","B1","B2"], ["C0","C1","C2"]]
print(tree_list(items))
--
http://mail.python.org/mailman/listinfo/python-list