リスト内包表記の結果の平坦化
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 サイトの他の関連記事を参照してください。