| 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 | evens = (x for x in seq1 if x % 2 == 0) | t | seq_even = (i for i in seq1 if i % 2 == 0) | 
            |  | odds = (x for x in seq2 if x % 2 == 1) |  | seq_odd = (i for i in seq2 if i % 2 == 1) | 
            |  | for even, odd in zip_longest(evens, odds): |  | for a, b in zip_longest(seq_even, seq_odd): | 
            |  | if even is not None: |  |  | 
            |  | yield even |  |  | 
            |  | if odd is not None: |  | if a is not None: | 
            |  | yield odd |  | yield a | 
            |  |  |  | if b is not None: | 
            |  |  |  | yield b |