From 50f37fe01adf2902c1cef7375bcc731a1e22706b Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Fri, 18 Apr 2014 04:29:57 +0300 Subject: [PATCH] itertools: Add partial implementation. --- itertools/itertools.py | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 itertools/itertools.py diff --git a/itertools/itertools.py b/itertools/itertools.py new file mode 100644 index 00000000..ed8f51f4 --- /dev/null +++ b/itertools/itertools.py @@ -0,0 +1,36 @@ +def count(start, step=1): + while True: + yield start + start += step + +def cycle(p): + while True: + yield from p + +def repeat(el, n=None): + if n is None: + while True: + yield el + else: + for i in range(n): + yield el + +def chain(*p): + for i in p: + yield from i + +def islice(p, start, stop=(), step=1): + if stop == (): + stop = start + start = 0 + while True: + try: + yield p[start] + except IndexError: + return + start += step + if start >= stop: + return + +def tee(iterable, n=2): + return [iter(iterable)] * n