从Python的列表中获取项目2乘2

kol*_*llo 1 python list filter

从列表中获取2项2的最优雅方式是什么?

from:
my_list = ['I', 'swear', 'I', 'googled', 'first']

to:
res_list = ['I swear', 'swear I', 'I googled', 'googled first']
Run Code Online (Sandbox Code Playgroud)

unu*_*tbu 5

def window(seq, n=2):
    """
    Returns a sliding window (of width n) over data from the sequence
    s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ...
    """
    for i in xrange(len(seq)-n+1):
        yield tuple(seq[i:i+n])

my_list = ['I', 'swear', 'I', 'googled', 'first']
res_list = [' '.join(group) for group in window(my_list, 2)]
print(res_list)
# ['I swear', 'swear I', 'I googled', 'googled first']
Run Code Online (Sandbox Code Playgroud)