chr*_*izz 5 python string floating-point text-files
我有一些Python代码从文本文件中提取字符串:
[2.467188005806714e-05, 0.18664554919828535, 0.5026880460053854, ....]
Run Code Online (Sandbox Code Playgroud)
Python代码:
v = string[string.index('['):].split(',')
for elem in v:
new_list.append(float(elem))
Run Code Online (Sandbox Code Playgroud)
这给出了一个错误:
ValueError: could not convert string to float: [2.974717463860223e-06
Run Code Online (Sandbox Code Playgroud)
为什么不能[2.974717463860223e-06转换为浮点数?
Tim*_*ker 16
你仍然[在你的"浮动"前面,这会阻止解析.
为什么不使用适当的模块呢?例如:
>>> a = "[2.467188005806714e-05, 0.18664554919828535, 0.5026880460053854]"
>>> import json
>>> b = json.loads(a)
>>> b
[2.467188005806714e-05, 0.18664554919828535, 0.5026880460053854]
Run Code Online (Sandbox Code Playgroud)
要么
>>> import ast
>>> b = ast.literal_eval(a)
>>> b
[2.467188005806714e-05, 0.18664554919828535, 0.5026880460053854]
Run Code Online (Sandbox Code Playgroud)
您可以执行以下操作将您从文件中读取的字符串转换为float列表
>>> instr="[2.467188005806714e-05, 0.18664554919828535, 0.5026880460053854]"
>>> [float(e) for e in instr.strip("[] \n").split(",")]
[2.467188005806714e-05, 0.18664554919828535, 0.5026880460053854]
Run Code Online (Sandbox Code Playgroud)
你的代码失败的原因是,你没有剥离字符串中的'['.