8

テキスト ファイルの行から科学数値を抽出しようとしています。何かのようなもの

例:

str = 'Name of value 1.111E-11   Next Name 444.4'

結果:

[1.111E-11, 444.4]

他の投稿で解決策を試しましたが、整数に対してのみ機能するようです(おそらく)

>>> [int(s) for s in str.split() if s.isdigit()]
[]

float() は機能しますが、文字列が使用されるたびにエラーが発生します。

>>> float(str.split()[3])
1.111E-11
>>> float(str.split()[2])
ValueError: could not convert string to float: value

よろしくお願いします。

4

3 に答える 3

3

forループとtry-exceptステートメントをいつでも使用できます。

>>> string = 'Name of value 1.111E-11   Next Name 444.4'
>>> final_list = []
>>> for elem in string.split():
        try:
            final_list.append(float(elem))
        except ValueError:
            pass


>>> final_list
[1.111e-11, 444.4]
于 2013-08-09T17:46:28.383 に答える