ホームページ > バックエンド開発 > Python チュートリアル > Python リスト内の要素のペア (またはグループ) を反復するにはどうすればよいですか?

Python リスト内の要素のペア (またはグループ) を反復するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-10 15:55:13
オリジナル
697 人が閲覧しました

How Can I Iterate Over Pairs (or Groups) of Elements in a Python List?

リスト内の要素のペアの反復

リストを反復するとき、次の 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート