ホームページ >バックエンド開発 >Python チュートリアル >Python でリスト内包表記を使用して、入れ子になった文字列リストを浮動小数点数に変換するにはどうすればよいですか?
入れ子リストを操作する場合、多くの場合、各要素を異なるデータ型に変換する必要があります。一般的なシナリオの 1 つは、文字列を浮動小数点に変換することです。ネストされたループを使用する代わりに、リスト内包表記は簡潔で効率的なソリューションを提供します。
ネストされたリストの各要素を float に変換するには、ネストされたリスト内包表記を使用できます。
[[float(y) for y in x] for x in l]
この式は、メイン リスト l 内の各サブリスト x をループし、 x の文字列から変換された浮動小数点を含む新しいサブリスト。結果のリストは元のリストと同じ構造になりますが、文字列の代わりに浮動小数点数が使用されます。
単一の平坦化されたリストが必要な場合は、ループの順序を逆にすることができます。 :
[float(y) for x in l for y in x]
この場合、y はすべてのサブリストのすべての要素を反復処理し、x はサブリストのすべての要素を反復処理します。それ自体をサブリスト化します。結果は、ネストされたリストから派生したすべての float を含む 1 つのリストです。
次のネストされたリストについて考えてみましょう。
l = [['40', '20', '10', '30'], ['20', '20', '20', '20', '20', '30', '20'], ['30', '20', '30', '50', '10', '30', '20', '20', '20'], ['100', '100'], ['100', '100', '100', '100', '100'], ['100', '100', '100', '100']]
ネストされたリストの内包表記を使用すると、結果は次のようになります:
[[40.0, 20.0, 10.0, 30.0], [20.0, 20.0, 20.0, 20.0, 20.0, 30.0, 20.0], [30.0, 20.0, 30.0, 50.0, 10.0, 30.0, 20.0, 20.0, 20.0], [100.0, 100.0], [100.0, 100.0, 100.0, 100.0, 100.0], [100.0, 100.0, 100.0, 100.0]]
フラット化リストの使用理解すると、結果は次のようになります:
[40.0, 20.0, 10.0, 30.0, 20.0, 20.0, 20.0, 20.0, 20.0, 30.0, 20.0, 30.0, 20.0, 30.0, 50.0, 10.0, 30.0, 20.0, 20.0, 20.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0]
以上がPython でリスト内包表記を使用して、入れ子になった文字列リストを浮動小数点数に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。