Python-遍历列表中的所有成对连续项

发布于 2021-02-02 23:14:37

给出清单

l = [1, 7, 3, 5]

我想遍历所有成对的连续列表项(1,7), (7,3), (3,5),即

for i in xrange(len(l) - 1):
    x = l[i]
    y = l[i + 1]
    # do something

我想以更紧凑的方式做到这一点,例如

for x, y in someiterator(l): ...

有没有办法使用内置的Python迭代器来做到这一点?我确定该itertools模块应该有解决方案,但我无法弄清楚。

关注者
0
被浏览
92
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    只需使用拉链

    >>> l = [1, 7, 3, 5]
    >>> for first, second in zip(l, l[1:]):
    ...     print first, second
    ...
    1 7
    7 3
    3 5
    

    如建议的那样,你可能会考虑izipitertools很长的列表中使用此函数,而这些列表又不想创建新列表。

    import itertools
    
    for first, second in itertools.izip(l, l[1:]):
        ...
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看