fork download
  1. from itertools import groupby, chain
  2.  
  3. data = [
  4. -1, 0,
  5. 'a','b', 1, 2, 3,
  6. 'c', 6,
  7. 'd', 'e', .4, .5,
  8. 'a', 'b', 4,
  9. 'f', 'g'
  10. ]
  11. output = {}
  12. groups = groupby(data, lambda i: isinstance(i, str))
  13. try:
  14. is_str, group = next(groups)
  15. if not is_str:
  16. is_str, group = next(groups)
  17. except StopIteration:
  18. pass
  19. else:
  20. for is_str, group in chain([(is_str, group)], groups):
  21. if is_str:
  22. key = '/'.join(group)
  23. else:
  24. output.setdefault(key, []).extend(group)
  25. if is_str:
  26. output.setdefault(key, [])
  27. print(output)
Success #stdin #stdout 0.04s 9932KB
stdin
Standard input is empty
stdout
{'a/b': [1, 2, 3, 4], 'c': [6], 'd/e': [0.4, 0.5], 'f/g': []}