致所有人:
我很好奇是否有人可以帮助我理解错误:ValueError: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])
我得到:
<type 'str'>
因此我不明白为什么 map(float, lines) 不能正常工作。我是否错误地使用了此功能?查看文档, map 函数给出为:map(function, iterable, ...)。列表不是可迭代的吗?
此外,如果有人可以解释这个错误/指出我对这个错误的解释方向,我将不胜感激。
在此先感谢您对这个问题的帮助。
最佳答案
在这种情况下你不需要 readlines——这是浪费时间和内存。
如果你想要一个 float 列表的列表:
b = [[float(v) for v in line.rstrip('\n').split('\t')] for line in a]
或者只是一个大的 float 列表:
b = [float(v) for line in a for v in line.rstrip('\n').split('\t')]
关于python - 值错误 : invalid literal for float() in Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7986459/