add symmetric iteration routine, related to #5
This commit is contained in:
19
src/dopt_basics/iteration.py
Normal file
19
src/dopt_basics/iteration.py
Normal file
@@ -0,0 +1,19 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from collections import deque
|
||||
from collections.abc import Iterator, Sequence
|
||||
from typing import TypeVar
|
||||
|
||||
T = TypeVar("T")
|
||||
|
||||
|
||||
def symmetric_iter(
|
||||
x: Sequence[T],
|
||||
) -> Iterator[T]:
|
||||
d = deque(x)
|
||||
|
||||
for idx in range(len(d)):
|
||||
if idx % 2 == 0:
|
||||
yield d.popleft()
|
||||
else:
|
||||
yield d.pop()
|
||||
Reference in New Issue
Block a user