f | def seesaw(sequence): | f | def seesaw(sequence): |
| evens = [] | | evens = [] |
| odds = [] | | odds = [] |
| for number in sequence: | | for number in sequence: |
| if number % 2 == 0: | | if number % 2 == 0: |
| evens.append(number) | | evens.append(number) |
| else: | | else: |
| odds.append(number) | | odds.append(number) |
t | i, j = (0, 0) | t | even_idx, odd_idx = (0, 0) |
| while i < len(evens) or j < len(odds): | | while even_idx < len(evens) or odd_idx < len(odds): |
| if i < len(evens): | | if even_idx < len(evens): |
| yield evens[i] | | yield evens[even_idx] |
| i += 1 | | even_idx += 1 |
| if j < len(odds): | | if odd_idx < len(odds): |
| yield odds[j] | | yield odds[odd_idx] |
| j += 1 | | odd_idx += 1 |