ホームページ > バックエンド開発 > Python チュートリアル > Python でネストされたリストを効率的にフラット化するにはどうすればよいですか?

Python でネストされたリストを効率的にフラット化するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-31 03:09:10
オリジナル
423 人が閲覧しました

How Can I Efficiently Flatten a Nested List in Python?

リストのリストのフラット化

問題ステートメント:

ネストされたリストが与えられており、それを次のようにフラット化する必要があります。単一のリスト。たとえば、次のようなリストのリストがあるとします。

[[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 サイトの他の関連記事を参照してください。

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