给大家:
我想知道是否有人能帮我理解这个错误:ValueError: invalid literal for float()。当我将文本文件传递到列表中,然后尝试将此列表转换为浮点值时,就会出现这种情况。
a = open("input.txt","r")
lines = a.readlines()
b = map(float, lines)
我觉得很奇怪的是,当我处理以下代码时:
print repr(lines[0])
我理解的是:
'0.000\t0.000...\t0.000\t0.000\n'
和
print type(lines[0])
I get:
<type 'str'>
我不明白为什么map(float, lines)函数不能正确地工作。我使用该函数的方法是否不正确?从文档上看,map函数的定义为:map(function, iterable, ...)。难道列表不是可迭代的吗?
此外,如果有人能够解释这个错误/指引我去找一个解释这个错误的方向,我会非常感激。
提前感谢对这个问题的帮助。
0.000\t0.000...\t0.000\n
都在一行上吗?如果是这样,那么我会认为这就是传递给float()
的内容,但它无法进行转换。看起来你需要将它们分割成单独的浮点数值。是这样吗? - eldarerathis\t
被显示为空格(即实际的制表符)。我猜这是一个字符串字面量,而不是一堆较短的字符串。 - eldarerathis