リスト内の連続するアイテムのペアをすべて反復処理する [重複] 質問する

リスト内の連続するアイテムのペアをすべて反復処理する [重複] 質問する

リストが与えられた場合

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モジュールに解決策があるはずですが、わかりません。

ベストアンサー1

ただ使うだけジップ

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

Python 2 を使用する場合 (推奨されません)、新しいリストを作成したくない非常に長いリストに対してizip関数 in を使用することを検討してください。itertools

import itertools

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

おすすめ記事