Given a list
A = [1 2 3 4 5 6]
Is there any idiomatic (Pythonic) way to iterate over it as though it were
B = [(1, 2) (3, 4) (5, 6)]
other than indexing? That feels like a holdover from C:
for a1,a2 in [ (A[i], A[i+1]) for i in range(0, len(A), 2) ]:
I can't help but feel there should be some clever hack using itertools or slicing or something.
(Of course, two at a time is just an example; I'd like a solution that works for any n.)
Edit: related Iterate over a string 2 (or n) characters at a time in Python but even the cleanest solution (accepted, using zip) doesn't generalize well to higher n without a list comprehension and *-notation.