リストが与えられた場合
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:]):
...