スペースで区切られた数字の文字列を整数に分割するにはどうすればいいですか? 質問する

スペースで区切られた数字の文字列を整数に分割するにはどうすればいいですか? 質問する

"42 0"たとえば、文字列があり、2 つの整数の配列を取得する必要があります。.splitスペースで a を実行できますか?


この問題に対する明白なアプローチは、単純なタスクの一般的な組み合わせです。

ただし、正確な要件に応じて、他の方法で対処できます。場合によっては、分割ステップだけで十分な場合があります。ネイティブ Python 以外の異なる出力を生成するには、ここでのいくつかの回答に示されている他のアプローチがあります。listたとえば、標準ライブラリarray.arrayや Numpy 配列を使用するなどです。

あるいは、この問題は次のような特別なケースとして捉えることもできる。Python で文字列から数字を抽出するにはどうすればいいですか?

ベストアンサー1

使用str.split():

>>> "42 0".split()  # or .split(" ")
['42', '0']

この場合は同一ですstr.split(" ")が、行に複数のスペースがある場合は動作が異なります。また、.split()スペースだけでなくすべての空白で分割されます。

反復可能オブジェクトの項目を、、などmapの組み込み関数に変換する場合、通常はリスト内包表記を使用するよりも を使用する方がきれいに見えます。Python 2では次のようになります。intfloatstr

>>> map(int, "42 0".split())
[42, 0]

Python 3 では、map遅延オブジェクトを返します。これをリストにするには、次のようにしますlist()

>>> map(int, "42 0".split())
<map object at 0x7f92e07f8940>
>>> list(map(int, "42 0".split()))
[42, 0]

おすすめ記事