我正在从一个看起来像这样的 csv 附加到一个列表
SampleA,Type,3.782*0.0627
然后vals = line.split(',')
所以,我尝试过类似
value = float(str(vals[2]))
或
value = float(vals[2])
但我收到类似的错误ValueError: invalid literal for float(): 3.782*0.0627
所以我想要的,是基本上存储到value = 0.237
即分割的结果
TIA
我正在从一个看起来像这样的 csv 附加到一个列表
SampleA,Type,3.782*0.0627
然后vals = line.split(',')
所以,我尝试过类似
value = float(str(vals[2]))
或
value = float(vals[2])
但我收到类似的错误ValueError: invalid literal for float(): 3.782*0.0627
所以我想要的,是基本上存储到value = 0.237
即分割的结果
TIA
你可以先计算浮点数。
floats = vals[2].split('*')
value = float(floats[0]) * float(floats[1])
您需要3.782*0.0627
“手动”执行操作。你可以这样做:
value1, value2 = map(float, vals[2].split("*"))
value = value1 * value2
但是,如果您有可能遇到任何其他操作,vals[2]
那么您应该为每个案例实现一个处理逻辑。
此外,如果您正在解析 csv,请考虑使用python 标准 csv 库
接受的答案不能处理只有一个值的情况,因为我建议(Python 3.8 或更高版本)
from math import prod
value = prod(map(float, vals[2].split("*")))
或类似地
from math import prod
value = prod(float(x) for x in vals[2].split("*"))