I have a sequence is like this,
seq = [[["A","AA","AB"],[0,1,2,3]], [["B","BB","BC"],[1,2,3]], [["C","CA","CB"],[0,1,2,3]]]
I wanted to convert this to something like below
[[['A', 'AA', 'AB', 'C', 'CA', 'CB'], [0, 1, 2, 3]], [['B', 'BB', 'BC'], [1, 2, 3]]]
I tried but I am getting like below. Can someone help in achieving the correct results.
JavaScript
x
11
11
1
In [105]: from itertools import groupby
2
from operator import itemgetter :
3
seq = [[["A","AA","AB"],[0,1,2,3]], [["B","BB","BC"],[1,2,3]], [["C","CA","CB"],[0,1,2,3]]] :
4
seq.sort(key = itemgetter(1)) :
5
groups = groupby(seq, itemgetter(1)) :
6
item[0],key) for item in data] for (key, data) in groups] : [[(
7
Out[105]:
8
[[(['A', 'AA', 'AB'], [0, 1, 2, 3]), (['C', 'CA', 'CB'], [0, 1, 2, 3])],
9
[(['B', 'BB', 'BC'], [1, 2, 3])]]
10
11
Advertisement
Answer
JavaScript
1
10
10
1
In [105]: from itertools import groupby
2
from operator import itemgetter :
3
seq = [[["A","AA","AB"],[0,1,2,3]], [["B","BB","BC"],[1,2,3]], [["C","CA","CB"],[0,1,2,3]]] :
4
seq.sort(key = itemgetter(1)) :
5
groups = groupby(seq, itemgetter(1)) :
6
l = [[(item[0],key) for item in data] for (key, data) in groups] :
7
for i in l: :
8
flat_list = [item for sublist in i[0] for item in sublist] :
9
i[0] = flat_list :
10