Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def flat_sequnce_gen(input_list, traverse=None, exclude=None, debug=False):
- traverse = traverse or (list, tuple)
- exclude = exclude or (str, bytes, int, float, complex)
- iterators = [iter(input_list)]
- last = None
- while iterators:
- try:
- current = next(iterators[-1])
- except StopIteration:
- iterators.pop()
- continue
- if isinstance(current, traverse) and not isinstance(current, exclude):
- if last is current:
- yield current
- iterators.pop()
- continue
- iterators.append(iter(current))
- last = current
- else:
- yield current
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement