iterate N elements at a time - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: iterate N elements at a time (/thread-12022.html) |
iterate N elements at a time - Skaperen - Aug-06-2018 i have a long iterator. i would like to iterate N elements at a time instead of 1 at a time. this is not an iterator of iterators; it is flat such as an iterator of ints, or an immutable type i am not going to iterate over, here, like a string. in most use cases i will know at the time of coding what N is (very often will be 2 or 3). in other use cases, N will not be known until run time. N will never change over the course of iterating; it will be known when the iterating begins. how can i iterate over an iterator N elements at a time? RE: iterate N elements at a time - Larz60+ - Aug-06-2018 something like this?: >>> from itertools import islice >>> loops = iter(range(10)) >>> for i in loops: ... print(i) ... next(islice(loops, n, n), None) ... 0 3 6 9 >>> RE: iterate N elements at a time - Skaperen - Aug-07-2018 i want to get all N elements (as a list or tuple) each time i iterate N items at a time. RE: iterate N elements at a time - DeaD_EyE - Aug-07-2018 def chunker(iterable, chunksize): return zip(*[iter(iterable)] * chunksize) def chunker_longest(iterable, chunksize): return itertools.zip_longest(*[iter(iterable)] * chunksize) for chunk in chunker_longest(range(101), 10): print(chunk)
|