ValueError: could not convert string to float: '.'
ValueError: could not convert string to float: '.'
我有一个字符串列表 (CD_cent),如下所示:
2.374 2.559 1.204
我想将这些数字乘以一个浮点数。
为此,我尝试将字符串列表转换为浮点数列表,例如:
CD_cent2=[float(x) for x in CD_cent]
但我总是得到错误:ValueError: could not convert string to float: '.'
。我想这意味着它无法将点转换为浮点数(?!)但是我该如何解决这个问题?为什么它不能识别圆点?
您需要 split
每个字符串,因为该字符串有多个值:
your_str = "2.374 2.559 1.204"
floats = [float(x) for x in your_str.split(' ')]
有了列表,您可以执行以下操作:
li = [...]
floats = []
for s in li:
floats.extend([float(x) for x in s.split(' ')])
在您的确切情况下,您只有一个字符串 CD_cent = 2.374 2.559 1.204
,因此您可以:
floats = [float(x) for x in CD_cent.split(' ')]
当我 运行 您使用提供的数据行时,一切正常,所有字符串都无误地转换为浮点数。该错误表明在您的 CD_cent
某处有一个点 .
确实无法转换为浮点数。
要尝试解决此问题,请执行以下操作:
CD_cent2=[float(x) for x in CD_cent if x != '.']
如果因为其他字符串而不起作用,您将不得不 try...except
像这样:
CD_cent2 = []
for x in CD_cent:
try:
CD_cent2.append(float(x))
except ValueError:
pass
所有这些都是因为我假设 CD_cent
不仅仅是一个像 '2.374 2.559 1.204'
这样的长字符串,而是一个像 [2.374,2.559,1.204]
这样的列表。如果不是这种情况,那么你应该 split
这样的行
CD_cent2=[float(x) for x in CD_cent.split()]
我有一个字符串列表 (CD_cent),如下所示:
2.374 2.559 1.204
我想将这些数字乘以一个浮点数。 为此,我尝试将字符串列表转换为浮点数列表,例如:
CD_cent2=[float(x) for x in CD_cent]
但我总是得到错误:ValueError: could not convert string to float: '.'
。我想这意味着它无法将点转换为浮点数(?!)但是我该如何解决这个问题?为什么它不能识别圆点?
您需要 split
每个字符串,因为该字符串有多个值:
your_str = "2.374 2.559 1.204"
floats = [float(x) for x in your_str.split(' ')]
有了列表,您可以执行以下操作:
li = [...]
floats = []
for s in li:
floats.extend([float(x) for x in s.split(' ')])
在您的确切情况下,您只有一个字符串 CD_cent = 2.374 2.559 1.204
,因此您可以:
floats = [float(x) for x in CD_cent.split(' ')]
当我 运行 您使用提供的数据行时,一切正常,所有字符串都无误地转换为浮点数。该错误表明在您的 CD_cent
某处有一个点 .
确实无法转换为浮点数。
要尝试解决此问题,请执行以下操作:
CD_cent2=[float(x) for x in CD_cent if x != '.']
如果因为其他字符串而不起作用,您将不得不 try...except
像这样:
CD_cent2 = []
for x in CD_cent:
try:
CD_cent2.append(float(x))
except ValueError:
pass
所有这些都是因为我假设 CD_cent
不仅仅是一个像 '2.374 2.559 1.204'
这样的长字符串,而是一个像 [2.374,2.559,1.204]
这样的列表。如果不是这种情况,那么你应该 split
这样的行
CD_cent2=[float(x) for x in CD_cent.split()]