fork download
  1. import itertools
  2.  
  3. key_list = ['a', 'c', 'f']
  4. wrong_list = ['a', 'b', 'c', 'd', 'e', 'f']
  5. wrong_list_fixed = [['a', 'b'], ['c', 'd', 'e'], ['f']]
  6.  
  7. class key:
  8. def __init__(self, key_list):
  9. self.last = -1
  10. self.key_list = key_list
  11. def __call__(self, item):
  12. try:
  13. self.last = self.key_list.index(item, self.last + 1)
  14. except ValueError:
  15. pass
  16. return self.last
  17.  
  18. wrong_list_fixed = [list(g) for k, g in itertools.groupby(wrong_list, key(key_list))]
  19. print(wrong_list_fixed)
Success #stdin #stdout 0.02s 9408KB
stdin
Standard input is empty
stdout
[['a', 'b'], ['c', 'd', 'e'], ['f']]