import itertools

def swap_1(it):
    for a in it:
        b = next(it, None)
        if b != None:
            yield b
        yield a

def swap_2(it):
    parells = False
    for a in it:
        if parells:
            yield a
            yield b
        parells = not parells
        b = a
    if parells:
        yield a

def swap_3(it):
    it2 = itertools.zip_longest(it, it)
    it3 = map(lambda t: t[::-1], it2)
    it4 = itertools.chain.from_iterable(it3)
    it5 = filter(lambda x:x != None, it4)
    return it5
    
# tria la solució que vols provar
swap = swap_1

