問題ステートメント:
ネストされたリストが与えられており、それを次のようにフラット化する必要があります。単一のリスト。たとえば、次のようなリストのリストがあるとします。
[[1, 2, 3], [4, 5, 6], [7], [8, 9]]
目標は、この構造を単一のリストにフラット化することです:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
解決策:
リストのリストをフラット化するには、ネストされたリストの内包表記を利用できます。この手法では、各内部リスト (コード内では xs で表されます) を反復処理し、各要素 (x で表されます) をフラット化されたリスト ( flat_list という名前) に追加します。
flat_list = [ x for xs in xss for x in xs ]
これは次と同等です。ネストされたループを使用した明示的な反復:
flat_list = [] for xs in xss: for x in xs: flat_list.append(x)
または、この平坦化を実行する関数を作成することもできます。操作:
def flatten(xss): return [x for xs in xss for x in xs]
この関数を使用すると、次のように入力リストをフラット化できます:
flat_list = flatten([[1, 2, 3], [4, 5, 6], [7], [8, 9]])
このアプローチは非常に効率的であり、using やreduce などの他の方法よりもパフォーマンスが大幅に優れています。 。リスト内包技術により、各要素がフラット化されたリストに 1 回だけコピーされることが保証されます。
以上がPython でネストされたリストを効率的にフラット化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。