Python 如何从csv读取列并将运算符显示在行中的列附加到列表中;获得;float()的文本无效;错误
我正在添加csv列表,如下所示Python 如何从csv读取列并将运算符显示在行中的列附加到列表中;获得;float()的文本无效;错误,python,Python,我正在添加csv列表,如下所示 samreake,类型,3.782*0.0627 然后vals=line.split(',') 所以,我试过类似的方法 value=float(str(vals[2])) 或 value=float(VAL[2]) 但是我得到了类似于ValueError:invalid literal for float():3.782*0.0627 所以我想要的是,基本上存储到value=0.237ie互变的结果 TIA您需要“手动”执行操作。 你可以这样做: value1,
samreake,类型,3.782*0.0627
然后vals=line.split(',')
所以,我试过类似的方法
value=float(str(vals[2]))
或
value=float(VAL[2])
但是我得到了类似于ValueError:invalid literal for float():3.782*0.0627
所以我想要的是,基本上存储到value=0.237
ie互变的结果
TIA您需要“手动”执行操作。 你可以这样做:
value1, value2 = map(float, vals[2].split("*"))
value = value1 * value2
但是,如果您可能在vals[2]
下遇到任何其他操作,那么您应该为每种情况实现一个处理逻辑
此外,如果您正在解析CSV,请考虑使用
< P>您需要手动执行操作<代码> 3.782×0.0627 < /代码>。 你可以这样做:value1, value2 = map(float, vals[2].split("*"))
value = value1 * value2
但是,如果您可能在vals[2]
下遇到任何其他操作,那么您应该为每种情况实现一个处理逻辑
此外,如果你正在解析CSV,考虑使用
,你可以先计算浮点。< /P>
floats = vals[2].split('*')
value = float(floats[0]) * float(floats[1])
你可以先计算浮点数
floats = vals[2].split('*')
value = float(floats[0]) * float(floats[1])
我建议,接受的答案不能处理只有一个值的情况(Python 3.8或更高版本) 或者类似地
from math import prod
value = prod(float(x) for x in vals[2].split("*"))
我建议,接受的答案不能处理只有一个值的情况(Python 3.8或更高版本) 或者类似地
from math import prod
value = prod(float(x) for x in vals[2].split("*"))
那个列总是用星号分隔的两个数字吗?好的观点;不,有时它只是一个浮点数,有时它需要两个浮点数,例如,列总是两个数字之间用星号分隔?好的观点;不,有时候它只是一个浮点数,有时候它需要两个浮点数作为例子