2017-11-22 19 views
0

'1.5 1e+05 test 4'のような単純な文字列を考えてみましょう。その文字列を生成するためにPython 2.7で使用されるフォーマットは'%f %e %s %i'です。文字列フォーマッタを知っている私の入力文字列からフォーム[1.5,100000,'test',4]のリストを取得したい。どうすればいいですか(Python 2.7またはPython 3)?文字列をfloat型、int型、str型のリストに変換します。

ありがとう、

Ch。

+0

'インポート解析、FORMAT_STRING = '{:1F} {:.2e} {:S} {:D}' PN = format_string.format(1.5,100000、 'テスト'、4) parsed = parse.parse(format_string、pn) '動作しません – ChrisB

+0

' parse'モジュールをダウンロードしてインストールしましたか? – Jerfov2

+0

もちろん、私の場合は 'type(parsed)'は 'NoneType'です – ChrisB

答えて

0

parseモジュールを使用してください。このモジュールは '逆フォーマット'を行うことができます。例:

from parse import parse 

format_str = '{:1f} {:.2e} {} {:d}' 
data = [1.5, 100000, 'test', 4] 
data_str = format_str.format(*data) 
print(data_str) # Output: 1.500000 1.00e+05 test 4 
parsed = parse(format_str, data_str) 
print(parsed) # Output: <Result (1.5, 100000.0, 'test', 4) {}> 
a, b, c, d = parsed # Whatever 
+0

@ChrisBよろしくお願いします!あなたが答えが好きだったら、それを受け入れてください – Jerfov2

関連する問題