Python でリストを操作する場合、要素の連続したペアを反復する必要がある場合があります。従来のアプローチでは、次の例に示すように、for ループを使用して要素のインデックスを反復処理します。
l = [1, 7, 3, 5] for i in range(len(l) - 1): x = l[i] y = l[i + 1] # do something
このアプローチは効果的ですが、大きなリストを扱う場合は退屈になる可能性があります。ここでは、Python の組み込み反復子を使用したより簡潔な解決策を示します。
zip 関数を使用すると、2 つ以上の反復可能オブジェクトの要素をペアにすることができます。リスト l 内の連続する要素のペアを反復処理するには、l[1:]:
for first, second in zip(l, l[1:]): # do something
を使用して、それ自体をシフトしたバージョンとペアにすることができます。このソリューションは簡潔かつ効率的であり、次の用途に最適です。リストペアの処理。
Python 2 では、 itertools モジュールは、大きなリストのメモリ効率を高めることができます。 zip とは異なり、ペアを遅延的に生成し、中間リストの作成を回避します。
import itertools for first, second in itertools.izip(l, l[1:]): # do something
このソリューションは、Python 3 の zip 関数と同じ機能を提供しながら、メモリの効率的な使用を保証します。
以上がPython リスト内の要素の連続ペアを反復処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。