ホームページ >バックエンド開発 >Python チュートリアル >Python でリスト内包表記を使用して、入れ子になった文字列リストを浮動小数点数に変換するにはどうすればよいですか?

Python でリスト内包表記を使用して、入れ子になった文字列リストを浮動小数点数に変換するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-16 12:09:11584ブラウズ

How Can I Convert Nested Lists of Strings to Floats Using List Comprehensions in 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 サイトの他の関連記事を参照してください。

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