1. ホーム
  2. python

[解決済み] リスト内の連続した項目のすべてのペアを反復する [重複].

2022-10-02 19:27:26

質問

リストが与えられた場合

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 モジュールが解決策を持っているはずですが、私はそれを理解することができません。

どのように解決するのですか?

ただ zip

>>> 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 関数で itertools を使うことで、新しいリストを作りたくないような非常に長いリストにも対応できます。

import itertools

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