ジェネレーター内包表記は、必要に応じて要素を生成する反復可能オブジェクトを作成できる強力な Python 機能です。メモリ内に完全なリストを作成するリスト内包表記とは異なり、ジェネレータ内包表記は要素を一度に 1 つずつストリームするため、大規模なデータセットのメモリ効率が向上します。
ジェネレータ式は次のとおりです。かっこで囲まれ、リストと同様の構文に従います。内包表記:
generator = (expression for element in iterable if condition)
たとえば、次のジェネレーター内包表記は 2 倍の数値のシーケンスを作成します。
my_generator = (x * 2 for x in [1, 2, 3, 4, 5])
ジェネレーター内包表記は要素を生成することによって機能します。 、指定された式に基づいて一度に 1 つずつ。これは、結果を返す前にメモリ内に要素のリスト全体を作成するリスト内包表記とは対照的です。
ジェネレーターから要素を取得するには、 next() 関数を使用するか、 for 関数を使用してそれを反復処理します。ループ:
next(my_generator) # Yields the first element for element in my_generator: print(element) # Iterates over remaining elements
ジェネレーターの内包表記は、大規模なデータを扱う場合に特に役立ちます。データセットは、結果全体をメモリに保存する必要がなく、要素を一度に 1 つずつストリーミングするためです。これにより、リスト内包表記と比較してメモリ消費を大幅に削減できます。
次の場合にジェネレータ内包表記を使用します。
次の場合にリスト内包表記を使用します。
以上がジェネレーター内包表記は Python のメモリ効率をどのように達成するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。