Pairwise circular Python 'for' loop

后端 未结 18 829
执念已碎
执念已碎 2020-12-24 10:24

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

18条回答
  •  离开以前
    2020-12-24 11:00

    from itertools import izip, chain, islice
    
    itr = izip(l, chain(islice(l, 1, None), islice(l, 1)))
    

    (As above with @j-f-sebastian's "zip" answer, but using itertools.)

    NB: EDITED given helpful nudge from @200_success. previously was:

    itr = izip(l, chain(l[1:], l[:1]))
    

提交回复
热议问题