The Oddler The Oddler - 7 months ago 14
Python Question

Pairwise circular Python 'for' loop

Is there a nice Pythonic way to loop over a list, retuning a pair of elements? The last element should be paired with the first.

So for instance, if I have the list [1, 2, 3], I would like to get the following pairs:


  • 1 - 2

  • 2 - 3

  • 3 - 1


Answer

A Pythonic way to access a list pairwise is: zip(L, L[1:]). To connect the last item to the first one:

>>> L = [1, 2, 3]
>>> zip(L, L[1:] + L[:1])
[(1, 2), (2, 3), (3, 1)]
Comments