f | from itertools import tee, zip_longest | f | from itertools import tee, zip_longest |
| | | |
| def seesaw(sequence): | | def seesaw(sequence): |
| seq1, seq2 = tee(sequence, 2) | | seq1, seq2 = tee(sequence, 2) |
t | seq_even = (i for i in seq1 if i % 2 == 0) | t | evens = (x for x in seq1 if x % 2 == 0) |
| seq_odd = (i for i in seq2 if i % 2 == 1) | | odds = (x for x in seq2 if x % 2 == 1) |
| for a, b in zip_longest(seq_even, seq_odd): | | for even, odd in zip_longest(evens, odds): |
| | | if even is not None: |
| | | yield even |
| if a is not None: | | if odd is not None: |
| yield a | | yield odd |
| if b is not None: | | |
| yield b | | |