リスト内の要素のペアの反復
リストを反復するとき、次の 2 つの要素にアクセスする必要がある状況によく遭遇します。ある時間。これに対処するには、ペアワイズ反復の概念を利用できます。
Python の組み込み zip() 関数は、この点で役立ちます。 pairwise() メソッドまたは grouped() メソッドは反復可能オブジェクトを消費し、連続する 2 要素のサブシーケンスを生成します。実装方法は次のとおりです:
def pairwise(iterable): "s -> (s0, s1), (s2, s3), (s4, s5), ..." a = iter(iterable) return zip(a, a)
この関数を使用して、リスト [1, 2, 3, 4, 5, 6] を考えてみましょう。ペアごとの反復を示す:
for x, y in pairwise(l): print("%d + %d = %d" % (x, y, x + y))
これにより、次の出力が生成されます:
1 + 2 = 3 3 + 4 = 7 5 + 6 = 11
あるいは、grouped() 関数を使用すると、一度に n 個の要素を反復できます。実装は次のとおりです。
def grouped(iterable, n=2): "s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..." return zip(*[iter(iterable)] * n)
たとえば、n を 3 に設定すると、一度に 3 つの要素を反復できます。
for x, y, z in grouped(l, 3): print("%d + %d + %d = %d" % (x, y, z, x + y + z))
このアプローチは、リストを一度だけ作成し、中間リストの必要性を排除します。
以上がPython リスト内の要素のペア (またはグループ) を反復するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。