I have a list that I want to split into multiple sublists
JavaScript
x
8
1
acq=['A1', 'A2', 'D', 'A3', 'A4', 'A5', 'D', 'A6']
2
ll=[]
3
for k,v in enumerate(acq):
4
if v == 'D':
5
continue # continue here
6
ll.append(v)
7
print(ll)
8
Above solution give gives an expanded appended list, which is not what I am looking for. My desired solution is:
JavaScript
1
4
1
['A1', 'A2']
2
['A3', 'A4', 'A5']
3
['A6']
4
Advertisement
Answer
Try itertools.groupby
:
JavaScript
1
8
1
from itertools import groupby
2
3
acq = ["A1", "A2", "D", "A3", "A4", "A5", "D", "A6"]
4
5
for v, g in groupby(acq, lambda v: v == "D"):
6
if not v:
7
print(list(g))
8
Prints:
JavaScript
1
4
1
['A1', 'A2']
2
['A3', 'A4', 'A5']
3
['A6']
4