ホームページ  >  記事  >  バックエンド開発  >  zip 関数を使用して複数のイテレータを同時に走査する Python の例の詳細な説明

zip 関数を使用して複数のイテレータを同時に走査する Python の例の詳細な説明

黄舟
黄舟オリジナル
2016-12-15 09:17:041478ブラウズ

はじめに

この記事では、Python が zip 関数を使用して複数のイテレータを同時に走査する方法を主に紹介します。この記事のバージョンは Python3 であり、zip 関数は Python の組み込み関数です。以下では多くを語らないので、詳細な内容を見てみましょう。

アプリケーション例

>>> list1 = ['a', 'b', 'c', 'd']
>>> list2 = ['apple', 'boy', 'cat', 'dog']
>>> for x, y in zip(list1, list2):
  print(x, 'is', y)
# 输出
a is apple
b is boy
c is cat
d is dog

これは 2 つのリストを同時に走査する非常に簡単な方法で、非常に Python 的です。 ! !

原理の説明

Python3 の zip 関数は、2 つ以上のイテレータをジェネレータにカプセル化できます。この zip ジェネレータは、各イテレータからイテレータの次の値を取得し、これらの値をタプルにアセンブルします。このようにして、zip 関数は複数のイテレータを並行して実行します。

注意

入力イテレータの長さが異なる場合、1 つのイテレータが走査されるとすぐに、zip はタプルを生成しなくなり、zip は早期に終了します。これにより、予期しない結果が生じる可能性があるため、無視すべきではありません。 zip でカプセル化されたリストが同じ長さであるかどうかわからない場合は、次のコマンドを使用できます。 itertools 組み込みモジュールの zip_longest 関数は、それらの長さが等しいかどうかを気にしません。

Python2 では、zip はジェネレーターではありません。これは、これらの反復子を並行して実行し、タプルをアセンブルし、タプルのリストを一度に完全に返します。これにより、大量のメモリが占​​有され、プログラムがクラッシュする可能性があります。 Python2 で大量のデータを含むイテレータを走査するには、使用することをお勧めします itertools 組み込みモジュールの izip 関数。

まとめ

上記は、zip 関数を使用して複数のイテレーターを同時に走査する Python の内容全体です。この記事の内容が皆さんの学習や仕事に少しでも役立つことを願っています。メッセージを残して通信することができます。

その他の関連記事については、PHP 中国語 Web サイト (www.php.cn) に注目してください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。