I have a flat list, for example:
flat = [\'1\', \'1-1\', \'1-1-1\', \'1-2\', \'2\', \'2-1\', \'2-2\', \'3\']
that I need to convert to a ne
def nested(flat, level=0): for k, it in itertools.groupby(flat, lambda x: x.split("-")[level]): yield next(it) remainder = list(nested(it, level + 1)) if remainder: yield remainder
Example:
>>> list(nested(flat, 0)) ['1', ['1-1', ['1-1-1'], '1-2'], '2', ['2-1', '2-2'], '3']