ホームページ > バックエンド開発 > Python チュートリアル > 「join()」を使用したリスト内包表記またはジェネレータ式? どちらがより効率的ですか?

「join()」を使用したリスト内包表記またはジェネレータ式? どちらがより効率的ですか?

DDD
リリース: 2024-12-14 19:30:16
オリジナル
680 人が閲覧しました

List Comprehension or Generator Expression with `join()`?  Which is More Efficient?

括弧なしのリスト内包表記: ジェネレーター式

Python では、リスト内包表記を使用して要素のリストを作成できます。構文は集合内包表記に似ていますが、角かっこが使用されます。ただし、括弧を使用せずに同じ結果を達成することも可能で、ジェネレーター式に似た構造になります。

次の例を考えてみましょう。

''.join([str(_) for _ in range(10)])
ログイン後にコピー

このコードはリストを作成します。 0 から 9 までの数字を表す文字列を結合し、join メソッドを使用してそれらを 1 つの文字列に結合します。興味深いことに、次のコードは角括弧を使用しなくても同じ結果を生成します。

''.join(str(_) for _ in range(10))
ログイン後にコピー

この動作の理由は、角括弧のないコードがジェネレーター式を表しており、これはリスト内包表記に似ていますが、反復可能オブジェクトを返します。リストの代わりにオブジェクトを使用します。ジェネレータ式はメモリ内にリスト全体を作成しないため、リスト内包表記よりもメモリ効率が高く、高速です。

ただし、join メソッドの場合は、join が動作するため、リスト内包表記を使用した方が効率的です。実際のリストではより効率的です。したがって、パフォーマンスを向上させるために、結合とともにリスト内包表記を使用することを一般的に推奨します。

以上が「join()」を使用したリスト内包表記またはジェネレータ式? どちらがより効率的ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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