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)?
解决方案
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;