Iterate over a python sequence in multiples of n?

iteration, python

Solution

I am sure someone is going to come up with some more "Pythonic" but how about:

for y in range(0, len(x), 2):
    print "%s%s" % (x[y], x[y+1])

Note that this would only work if you know that `len(x) % 2 == 0;`

Problem

How do I process the elements of a sequence in batches, idiomatically? For example, with the sequence "abcdef" and a batch size of 2, I would like to do something like the following: ``` for x, y in "abcdef": print "%s%s\n" % (x, y) ab cd ef ``` Of course, this doesn't work because it is expecting a single element from the list which itself contains 2 elements. What is a nice, short, clean, pythonic way to process the next n elements of a list in a batch, or sub-strings of length n from a larger string (two similar problems)?

Original source

Related problems