ホームページ >バックエンド開発 >Python チュートリアル >入れ子になったリストの内包表記は Python でどのように機能しますか?

入れ子になったリストの内包表記は Python でどのように機能しますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-12 14:16:16808ブラウズ

How Do Nested List Comprehensions Work in Python?

入れ子になったリスト内包表記について

Python では、リスト内包表記は、他のシーケンスを反復処理してリストを作成する簡潔な方法です。単一レベルの反復を伴う単純なリスト内包表記は簡単ですが、ネストされたリスト内包表記はさらに複雑になる可能性があります。

構文と解釈

次のネストされたリスト内包表記を考えてみましょう。

a = [[1, 2], [3, 4], [5, 6]]
b = [x for xs in a for x in xs]

この内包により、新しいリスト b は、リストのリストである a の要素を反復処理することによって作成されます。外側のループ (for xs in a) は各内側のリストを反復処理し、内側のループ (for x in xs) は内側のリストの各要素を反復処理します。

ループの展開

ネストされたリストの内包表記を理解する鍵は、実行中のループを視覚化し、次のように展開することです。

for x in [1, 2]:
    for x in [3, 4]:
        for x in [5, 6]:
            yield x

この解きほぐされたループは、ネストされた内包表記を表し、ネストされた構造内のすべての要素を反復処理して、結果のリスト b.

の値を生成する方法を示しています。一般化

ネストされたリストの内包表記の一般規則は、ループ書かれた順に実行され、最後のインデックスが最も速く変化します。これにより、複数レベルのネストされたシーケンスの要素を含むリストを作成できます。

サンプル アプリケーション

ネストされたリストの内包表記は、次のようなタスクに役立ちます。

  • ネストされたリストの平坦化
  • 抽出多次元構造からの特定の項目
  • 入れ子構造の要素を新しいリストに変換

以上が入れ子になったリストの内包表記は Python でどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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