diff --git a/chunker.py b/chunker.py new file mode 100644 index 0000000..6437370 --- /dev/null +++ b/chunker.py @@ -0,0 +1,11 @@ +def chunker(it, n): + it = iter(it) + while 1: + chunk = tuple(x[1] for x in zip(range(n), it)) + if not chunk: + break + yield chunk + + +for chunk in chunker(range(25), 4): + print(list(chunk)) diff --git a/my_range_gen_3.py b/my_range_gen_3.py new file mode 100644 index 0000000..6985498 --- /dev/null +++ b/my_range_gen_3.py @@ -0,0 +1,24 @@ +from operator import gt, lt + + +def my_range_gen(start, stop=None, step=1): + if stop is None: + start, stop = 0, start + + if ( + not step + or start == stop + or (step > 0 and start > stop) + or (step < 0 and start < stop) + ): + return + + x, op = start, start > stop and gt or lt + while op(x, stop): + yield x + x += step + + +for i in my_range_gen(20, 10, 3): + print(i) +print("End")