ホームページ >バックエンド開発 >Python チュートリアル >Python でリスト内包表記からネストされたリストを平坦化する方法?

Python でリスト内包表記からネストされたリストを平坦化する方法?

DDD
DDDオリジナル
2024-11-14 11:07:02897ブラウズ

How to Flatten Nested Lists from List Comprehensions in Python?

リスト内包表記の結果の平坦化

Python では、リスト内包表記を使用してリストの各要素に関数を適用すると、ネストされる可能性がありますリスト。たとえば、リスト A と、A の各要素をリストに変換する関数 f を考慮すると、リスト内包表記 [f(a) for a in A] によってリストのリストが生成されます。

平坦化された関数型プログラミングの「フラットマップ」演算子や .NET の「SelectMany」演算子と同様に、リストにネストを導入できます。内包表記:

<code class="python">[filename for path in dirs for filename in os.listdir(path)]</code>

これは、複数のネストされたループを使用する次のコードと機能的に同等です:

<code class="python">filenames = []
for path in dirs:
    for filename in os.listdir(path):
        filenames.append(filename)</code>

このアプローチを採用すると、要素が次のように取得されるフラット リストが確実に生成されます。最初に外側のリスト dirs を反復し、次に dirs の各要素に適用される関数 f によって返される内側のリストを反復します。

以上がPython でリスト内包表記からネストされたリストを平坦化する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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