fork download
  1. import operator
  2. import itertools
  3. L = [1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 1, 1]
  4.  
  5. enumerated = list(enumerate(L))
  6. print("enumerated", enumerated)
  7.  
  8. grouped = [(value,list(group)) for value,group in itertools.groupby(enumerated, key=operator.itemgetter(1))]
  9. print("grouped", grouped)
  10.  
  11. filtered = [(value,group) for value,group in grouped if value != 0]
  12. print("filtered", filtered)
  13.  
  14. result = [[index for index,_ in group] for _,group in filtered]
  15. print("result", result)
Success #stdin #stdout 0.02s 9292KB
stdin
Standard input is empty
stdout
enumerated [(0, 1), (1, 1), (2, 1), (3, 1), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0), (9, 1), (10, 1), (11, 1), (12, 0), (13, 0), (14, 1), (15, 1), (16, 0), (17, 0), (18, 0), (19, 0), (20, 1), (21, 1)]
grouped [(1, [(0, 1), (1, 1), (2, 1), (3, 1)]), (0, [(4, 0), (5, 0), (6, 0), (7, 0), (8, 0)]), (1, [(9, 1), (10, 1), (11, 1)]), (0, [(12, 0), (13, 0)]), (1, [(14, 1), (15, 1)]), (0, [(16, 0), (17, 0), (18, 0), (19, 0)]), (1, [(20, 1), (21, 1)])]
filtered [(1, [(0, 1), (1, 1), (2, 1), (3, 1)]), (1, [(9, 1), (10, 1), (11, 1)]), (1, [(14, 1), (15, 1)]), (1, [(20, 1), (21, 1)])]
result [[0, 1, 2, 3], [9, 10, 11], [14, 15], [20, 21]]