f | from itertools import tee, zip_longest | f | from itertools import tee, zip_longest |
| | | |
| def seesaw(sequence): | | def seesaw(sequence): |
t | even_iter, odd_iter = tee(sequence) | t | sequence1, sequence2 = tee(sequence) |
| evens = (x for x in even_iter if x % 2 == 0) | | even_iter = (x for x in sequence1 if x % 2 == 0) |
| odds = (x for x in odd_iter if x % 2 != 0) | | odd_iter = (x for x in sequence2 if x % 2 != 0) |
| for even, odd in zip_longest(evens, odds): | | for even, odd in zip_longest(even_iter, odd_iter): |
| if even is not None: | | if even is not None: |
| yield even | | yield even |
| if odd is not None: | | if odd is not None: |
| yield odd | | yield odd |