Iterate over pairs in a list (circular fashion) in Python

前端 未结 13 1951
醉酒成梦
醉酒成梦 2020-12-01 01:14

The problem is easy, I want to iterate over each element of the list and the next one in pairs (wrapping the last one with the first).

I\'ve thought about two unpyth

13条回答
  •  萌比男神i
    2020-12-01 02:14

    Of course, you can always use a deque:

    from collections import deque
    from itertools import *
    
    def pairs(lst, n=2):
        itlst = iter(lst)
        start = list(islice(itlst, 0, n-1))
        deq = deque(start, n)
        for elt in chain(itlst, start):
            deq.append(elt)
            yield list(deq)
    

提交回复
热议问题