A todos:ValueError: inválido literal de flotador() en Python
Tengo curiosidad por si alguien puede ayudarme a entender el error: ValueError: inválido literal de flotador(). Estoy obteniendo esto cuando estoy pasando un archivo de texto a una lista y luego trato de convertir esta lista en valores flotantes.
a = open("input.txt","r")
lines = a.readlines()
b = map(float, lines)
Lo que es extraño, al menos para mí es que cuando proceso:
print repr(lines[0])
me sale:
'0.000 \ t0.000 ... \ t0.000 \ t0 0,000 \ n'
y
print type(lines[0])
me sale:
<type 'str'>
No entiendo, por tanto, por qué el mapa (flotante, líneas) no funciona correctamente. ¿Estoy usando esta función incorrectamente? Mirando la documentación, la función del mapa se da como: mapa (función, iterable, ...). ¿Una lista no es iterable?
Además, si alguien pudiera explicar este error/señalarme en la dirección de una explicación de este error, lo agradecería mucho.
Gracias de antemano por su ayuda con esta pregunta.
¿Estás diciendo que '0,000 \ t0.000 ... \ t0 .000 \ n' es todo una línea? Si es así, supongo que eso es lo que se está pasando en 'float()' y no se puede convertir. Parece que necesitarías dividirlo en valores flotantes individuales. Es ese el caso? – eldarerathis
@eldarerathis Sí, es una sola línea, pero cuando la proceso parece pasar por un cierto número de valores, entonces me da el error: b = map (float, lines) ValueError: literal no válido para float(): 0.000 \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t \t 0.000 0.000 0.000 \t \t 0. Es no es en realidad haciéndolo a través de los valores? – geop
Parece la única cadena que anotó anteriormente, pero con el '\ t' se muestra como un espacio en blanco (es decir, un carácter de tabulación real). Eso es todo una cadena literal, no un montón de más cortas, supongo. – eldarerathis