fork download
  1. def recursive(it):
  2. s = ''
  3. for c in it:
  4. if c == ',':
  5. if s:
  6. yield s
  7. s = ''
  8. elif c == '[':
  9. for y in recursive(it):
  10. yield s + '.' + y
  11. s = ''
  12. elif c == ']':
  13. if s:
  14. yield s
  15. return
  16. else:
  17. s += c
  18. if s:
  19. yield s
  20.  
  21. s = 'a,b,c[a,b,c[a]],d'
  22. print(list(recursive(iter(s))))
Success #stdin #stdout 0.01s 7896KB
stdin
Standard input is empty
stdout
['a', 'b', 'c.a', 'c.b', 'c.c.a', 'd']