括弧なしのリスト内包表記: ジェネレーター式
Python では、リスト内包表記を使用して要素のリストを作成できます。構文は集合内包表記に似ていますが、角かっこが使用されます。ただし、括弧を使用せずに同じ結果を達成することも可能で、ジェネレーター式に似た構造になります。
次の例を考えてみましょう。
''.join([str(_) for _ in range(10)])
このコードはリストを作成します。 0 から 9 までの数字を表す文字列を結合し、join メソッドを使用してそれらを 1 つの文字列に結合します。興味深いことに、次のコードは角括弧を使用しなくても同じ結果を生成します。
''.join(str(_) for _ in range(10))
この動作の理由は、角括弧のないコードがジェネレーター式を表しており、これはリスト内包表記に似ていますが、反復可能オブジェクトを返します。リストの代わりにオブジェクトを使用します。ジェネレータ式はメモリ内にリスト全体を作成しないため、リスト内包表記よりもメモリ効率が高く、高速です。
ただし、join メソッドの場合は、join が動作するため、リスト内包表記を使用した方が効率的です。実際のリストではより効率的です。したがって、パフォーマンスを向上させるために、結合とともにリスト内包表記を使用することを一般的に推奨します。
以上が「join()」を使用したリスト内包表記またはジェネレータ式? どちらがより効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。